@vkontakte/vkui 8.1.3 → 8.2.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/dist/components/ActionSheet/ActionSheet.d.ts +5 -4
  2. package/dist/components/ActionSheet/ActionSheet.d.ts.map +1 -1
  3. package/dist/components/ActionSheet/ActionSheet.js +2 -1
  4. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  5. package/dist/components/AdaptivityProvider/AdaptivityContext.d.ts +3 -3
  6. package/dist/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  7. package/dist/components/AdaptivityProvider/AdaptivityProvider.js +2 -2
  8. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  9. package/dist/components/AppRoot/AppRoot.d.ts.map +1 -1
  10. package/dist/components/AppRoot/AppRoot.js +0 -6
  11. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  12. package/dist/components/AppRoot/AppRootContext.d.ts +0 -1
  13. package/dist/components/AppRoot/AppRootContext.d.ts.map +1 -1
  14. package/dist/components/AppRoot/AppRootContext.js +0 -1
  15. package/dist/components/AppRoot/AppRootContext.js.map +1 -1
  16. package/dist/components/Calendar/Calendar.d.ts +1 -1
  17. package/dist/components/Calendar/Calendar.js +2 -1
  18. package/dist/components/Calendar/Calendar.js.map +1 -1
  19. package/dist/components/CalendarDay/CalendarDay.d.ts.map +1 -1
  20. package/dist/components/CalendarDay/CalendarDay.js +4 -2
  21. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  22. package/dist/components/CalendarDays/CalendarDays.d.ts.map +1 -1
  23. package/dist/components/CalendarDays/CalendarDays.js +2 -2
  24. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  25. package/dist/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
  26. package/dist/components/CalendarHeader/CalendarHeader.js +4 -2
  27. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  28. package/dist/components/CalendarRange/CalendarRange.d.ts +2 -2
  29. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  30. package/dist/components/CalendarTime/CalendarTime.d.ts +1 -1
  31. package/dist/components/CalendarTime/CalendarTime.d.ts.map +1 -1
  32. package/dist/components/CalendarTime/CalendarTime.js +61 -50
  33. package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
  34. package/dist/components/CalendarTime/CalendarTimePicker.d.ts +11 -7
  35. package/dist/components/CalendarTime/CalendarTimePicker.d.ts.map +1 -1
  36. package/dist/components/CalendarTime/CalendarTimePicker.js +108 -48
  37. package/dist/components/CalendarTime/CalendarTimePicker.js.map +1 -1
  38. package/dist/components/CalendarTime/ComboBox.d.ts +25 -0
  39. package/dist/components/CalendarTime/ComboBox.d.ts.map +1 -0
  40. package/dist/components/CalendarTime/ComboBox.js +112 -0
  41. package/dist/components/CalendarTime/ComboBox.js.map +1 -0
  42. package/dist/components/CardScroll/CardScroll.d.ts.map +1 -1
  43. package/dist/components/CardScroll/CardScroll.js +2 -2
  44. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  45. package/dist/components/CarouselBase/CarouselBase.d.ts.map +1 -1
  46. package/dist/components/CarouselBase/CarouselBase.js +3 -1
  47. package/dist/components/CarouselBase/CarouselBase.js.map +1 -1
  48. package/dist/components/ChipsSelect/useChipsSelect.d.ts.map +1 -1
  49. package/dist/components/ChipsSelect/useChipsSelect.js +2 -1
  50. package/dist/components/ChipsSelect/useChipsSelect.js.map +1 -1
  51. package/dist/components/ConfigProvider/ConfigProvider.d.ts.map +1 -1
  52. package/dist/components/ConfigProvider/ConfigProvider.js +8 -4
  53. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  54. package/dist/components/ConfigProvider/ConfigProviderOverride.d.ts.map +1 -1
  55. package/dist/components/ConfigProvider/ConfigProviderOverride.js +5 -1
  56. package/dist/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
  57. package/dist/components/ConfigProvider/ConfigProviderSubContexts.d.ts +15 -0
  58. package/dist/components/ConfigProvider/ConfigProviderSubContexts.d.ts.map +1 -0
  59. package/dist/components/ConfigProvider/ConfigProviderSubContexts.js +25 -0
  60. package/dist/components/ConfigProvider/ConfigProviderSubContexts.js.map +1 -0
  61. package/dist/components/ContentBadge/ContentBadge.d.ts +14 -1
  62. package/dist/components/ContentBadge/ContentBadge.d.ts.map +1 -1
  63. package/dist/components/ContentBadge/ContentBadge.js +39 -1
  64. package/dist/components/ContentBadge/ContentBadge.js.map +1 -1
  65. package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  66. package/dist/components/CustomSelect/CustomSelect.js +16 -10
  67. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  68. package/dist/components/DateInput/DateInput.d.ts.map +1 -1
  69. package/dist/components/DateInput/DateInput.js +4 -3
  70. package/dist/components/DateInput/DateInput.js.map +1 -1
  71. package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  72. package/dist/components/DateRangeInput/DateRangeInput.js +2 -2
  73. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  74. package/dist/components/Epic/ScrollSaver.d.ts.map +1 -1
  75. package/dist/components/Epic/ScrollSaver.js +1 -0
  76. package/dist/components/Epic/ScrollSaver.js.map +1 -1
  77. package/dist/components/FixedLayout/ParentWidthWrapper.d.ts +6 -0
  78. package/dist/components/FixedLayout/ParentWidthWrapper.d.ts.map +1 -0
  79. package/dist/components/FixedLayout/ParentWidthWrapper.js +43 -0
  80. package/dist/components/FixedLayout/ParentWidthWrapper.js.map +1 -0
  81. package/dist/components/Flex/Flex.d.ts +7 -4
  82. package/dist/components/Flex/Flex.d.ts.map +1 -1
  83. package/dist/components/Flex/Flex.js +5 -2
  84. package/dist/components/Flex/Flex.js.map +1 -1
  85. package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js +3 -1
  86. package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js.map +1 -1
  87. package/dist/components/NativeSelect/NativeSelect.d.ts.map +1 -1
  88. package/dist/components/NativeSelect/NativeSelect.js +6 -2
  89. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  90. package/dist/components/OnboardingTooltip/OnboardingTooltip.js +2 -1
  91. package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  92. package/dist/components/PanelHeader/PanelHeader.d.ts +1 -1
  93. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  94. package/dist/components/Popper/Popper.js +1 -1
  95. package/dist/components/Popper/Popper.js.map +1 -1
  96. package/dist/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  97. package/dist/components/PullToRefresh/PullToRefresh.js +8 -4
  98. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  99. package/dist/components/Root/Root.d.ts +1 -1
  100. package/dist/components/Root/Root.d.ts.map +1 -1
  101. package/dist/components/Root/Root.js +14 -5
  102. package/dist/components/Root/Root.js.map +1 -1
  103. package/dist/components/SimpleGrid/SimpleGrid.d.ts +9 -8
  104. package/dist/components/SimpleGrid/SimpleGrid.d.ts.map +1 -1
  105. package/dist/components/SimpleGrid/SimpleGrid.js +9 -2
  106. package/dist/components/SimpleGrid/SimpleGrid.js.map +1 -1
  107. package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
  108. package/dist/components/Skeleton/Skeleton.js +3 -4
  109. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  110. package/dist/components/Snackbar/Snackbar.d.ts.map +1 -1
  111. package/dist/components/Snackbar/Snackbar.js +6 -3
  112. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  113. package/dist/components/Spacing/Spacing.d.ts +1 -1
  114. package/dist/components/Spacing/Spacing.js.map +1 -1
  115. package/dist/components/Spinner/ExpressiveSpinner/ExpressiveSpinner.d.ts +10 -0
  116. package/dist/components/Spinner/ExpressiveSpinner/ExpressiveSpinner.d.ts.map +1 -0
  117. package/dist/components/Spinner/ExpressiveSpinner/ExpressiveSpinner.js +54 -0
  118. package/dist/components/Spinner/ExpressiveSpinner/ExpressiveSpinner.js.map +1 -0
  119. package/dist/components/Spinner/ExpressiveSpinner/icons.d.ts +18 -0
  120. package/dist/components/Spinner/ExpressiveSpinner/icons.d.ts.map +1 -0
  121. package/dist/components/Spinner/ExpressiveSpinner/icons.js +79 -0
  122. package/dist/components/Spinner/ExpressiveSpinner/icons.js.map +1 -0
  123. package/dist/components/Spinner/SvgIcon.d.ts +14 -0
  124. package/dist/components/Spinner/SvgIcon.d.ts.map +1 -0
  125. package/dist/components/Spinner/SvgIcon.js +20 -0
  126. package/dist/components/Spinner/SvgIcon.js.map +1 -0
  127. package/dist/components/Spinner/icons.d.ts +1 -1
  128. package/dist/components/Spinner/icons.d.ts.map +1 -1
  129. package/dist/components/Spinner/icons.js +10 -23
  130. package/dist/components/Spinner/icons.js.map +1 -1
  131. package/dist/components/SplitLayout/SplitLayout.d.ts +3 -3
  132. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  133. package/dist/components/TabsItem/TabsItem.d.ts.map +1 -1
  134. package/dist/components/TabsItem/TabsItem.js +2 -5
  135. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  136. package/dist/components/Tappable/Tappable.d.ts +2 -2
  137. package/dist/components/Tappable/Tappable.js.map +1 -1
  138. package/dist/components/WriteBar/WriteBar.d.ts +15 -1
  139. package/dist/components/WriteBar/WriteBar.d.ts.map +1 -1
  140. package/dist/components/WriteBar/WriteBar.js +35 -63
  141. package/dist/components/WriteBar/WriteBar.js.map +1 -1
  142. package/dist/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.d.ts +5 -0
  143. package/dist/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.d.ts.map +1 -0
  144. package/dist/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.js +15 -0
  145. package/dist/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.js.map +1 -0
  146. package/dist/components/WriteBar/WriteBarFormField/WriteBarFormField.d.ts +8 -0
  147. package/dist/components/WriteBar/WriteBarFormField/WriteBarFormField.d.ts.map +1 -0
  148. package/dist/components/WriteBar/WriteBarFormField/WriteBarFormField.js +16 -0
  149. package/dist/components/WriteBar/WriteBarFormField/WriteBarFormField.js.map +1 -0
  150. package/dist/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.d.ts +5 -0
  151. package/dist/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.d.ts.map +1 -0
  152. package/dist/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.js +15 -0
  153. package/dist/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.js.map +1 -0
  154. package/dist/components/WriteBar/WriteBarRoot/WriteBarRoot.d.ts +10 -0
  155. package/dist/components/WriteBar/WriteBarRoot/WriteBarRoot.d.ts.map +1 -0
  156. package/dist/components/WriteBar/WriteBarRoot/WriteBarRoot.js +16 -0
  157. package/dist/components/WriteBar/WriteBarRoot/WriteBarRoot.js.map +1 -0
  158. package/dist/components/WriteBar/WriteBarTextarea/WriteBarTextarea.d.ts +10 -0
  159. package/dist/components/WriteBar/WriteBarTextarea/WriteBarTextarea.d.ts.map +1 -0
  160. package/dist/components/WriteBar/WriteBarTextarea/WriteBarTextarea.js +39 -0
  161. package/dist/components/WriteBar/WriteBarTextarea/WriteBarTextarea.js.map +1 -0
  162. package/dist/components.css +1 -1
  163. package/dist/components.css.map +1 -1
  164. package/dist/cssm/components/ActionSheet/ActionSheet.js +2 -1
  165. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  166. package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  167. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +2 -2
  168. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  169. package/dist/cssm/components/AppRoot/AppRoot.js +0 -6
  170. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  171. package/dist/cssm/components/AppRoot/AppRootContext.js +0 -1
  172. package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
  173. package/dist/cssm/components/Calendar/Calendar.js +2 -1
  174. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  175. package/dist/cssm/components/CalendarDay/CalendarDay.js +4 -2
  176. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  177. package/dist/cssm/components/CalendarDays/CalendarDays.js +2 -2
  178. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  179. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +4 -2
  180. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  181. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  182. package/dist/cssm/components/CalendarTime/CalendarTime.js +61 -50
  183. package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
  184. package/dist/cssm/components/CalendarTime/CalendarTime.module.css +38 -0
  185. package/dist/cssm/components/CalendarTime/CalendarTimePicker.js +108 -48
  186. package/dist/cssm/components/CalendarTime/CalendarTimePicker.js.map +1 -1
  187. package/dist/cssm/components/CalendarTime/ComboBox.js +113 -0
  188. package/dist/cssm/components/CalendarTime/ComboBox.js.map +1 -0
  189. package/dist/cssm/components/CardScroll/CardScroll.js +2 -2
  190. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  191. package/dist/cssm/components/CarouselBase/CarouselBase.js +3 -1
  192. package/dist/cssm/components/CarouselBase/CarouselBase.js.map +1 -1
  193. package/dist/cssm/components/ChipsSelect/useChipsSelect.js +2 -1
  194. package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +1 -1
  195. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +8 -4
  196. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  197. package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js +5 -1
  198. package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
  199. package/dist/cssm/components/ConfigProvider/ConfigProviderSubContexts.js +25 -0
  200. package/dist/cssm/components/ConfigProvider/ConfigProviderSubContexts.js.map +1 -0
  201. package/dist/cssm/components/ContentBadge/ContentBadge.js +39 -1
  202. package/dist/cssm/components/ContentBadge/ContentBadge.js.map +1 -1
  203. package/dist/cssm/components/ContentBadge/ContentBadge.module.css +88 -90
  204. package/dist/cssm/components/CustomSelect/CustomSelect.js +16 -10
  205. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  206. package/dist/cssm/components/DateInput/DateInput.js +4 -3
  207. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  208. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +2 -2
  209. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  210. package/dist/cssm/components/Epic/ScrollSaver.js +1 -0
  211. package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
  212. package/dist/cssm/components/FixedLayout/ParentWidthWrapper.js +43 -0
  213. package/dist/cssm/components/FixedLayout/ParentWidthWrapper.js.map +1 -0
  214. package/dist/cssm/components/Flex/Flex.js +5 -2
  215. package/dist/cssm/components/Flex/Flex.js.map +1 -1
  216. package/dist/cssm/components/GridAvatar/GridAvatar.module.css +1 -1
  217. package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js +3 -1
  218. package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js.map +1 -1
  219. package/dist/cssm/components/NativeSelect/NativeSelect.js +6 -2
  220. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  221. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js +2 -1
  222. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  223. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  224. package/dist/cssm/components/Popper/Popper.js +1 -1
  225. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  226. package/dist/cssm/components/PullToRefresh/PullToRefresh.js +8 -4
  227. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  228. package/dist/cssm/components/PullToRefresh/PullToRefresh.module.css +1 -1
  229. package/dist/cssm/components/Root/Root.js +14 -5
  230. package/dist/cssm/components/Root/Root.js.map +1 -1
  231. package/dist/cssm/components/SimpleGrid/SimpleGrid.js +9 -2
  232. package/dist/cssm/components/SimpleGrid/SimpleGrid.js.map +1 -1
  233. package/dist/cssm/components/Skeleton/Skeleton.js +3 -4
  234. package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
  235. package/dist/cssm/components/Snackbar/Snackbar.js +6 -3
  236. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  237. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  238. package/dist/cssm/components/Spinner/ExpressiveSpinner/ExpressiveSpinner.js +56 -0
  239. package/dist/cssm/components/Spinner/ExpressiveSpinner/ExpressiveSpinner.js.map +1 -0
  240. package/dist/cssm/components/Spinner/ExpressiveSpinner/ExpressiveSpinner.module.css +13 -0
  241. package/dist/cssm/components/Spinner/ExpressiveSpinner/icons.js +79 -0
  242. package/dist/cssm/components/Spinner/ExpressiveSpinner/icons.js.map +1 -0
  243. package/dist/cssm/components/Spinner/SvgIcon.js +20 -0
  244. package/dist/cssm/components/Spinner/SvgIcon.js.map +1 -0
  245. package/dist/cssm/components/Spinner/icons.js +10 -23
  246. package/dist/cssm/components/Spinner/icons.js.map +1 -1
  247. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  248. package/dist/cssm/components/TabsItem/TabsItem.js +2 -5
  249. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  250. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  251. package/dist/cssm/components/WriteBar/WriteBar.js +35 -64
  252. package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
  253. package/dist/cssm/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.js +16 -0
  254. package/dist/cssm/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.js.map +1 -0
  255. package/dist/cssm/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.module.css +12 -0
  256. package/dist/cssm/components/WriteBar/WriteBarFormField/WriteBarFormField.js +17 -0
  257. package/dist/cssm/components/WriteBar/WriteBarFormField/WriteBarFormField.js.map +1 -0
  258. package/dist/cssm/components/WriteBar/WriteBarFormField/WriteBarFormField.module.css +18 -0
  259. package/dist/cssm/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.js +16 -0
  260. package/dist/cssm/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.js.map +1 -0
  261. package/dist/cssm/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.module.css +3 -0
  262. package/dist/cssm/components/WriteBar/WriteBarRoot/WriteBarRoot.js +17 -0
  263. package/dist/cssm/components/WriteBar/WriteBarRoot/WriteBarRoot.js.map +1 -0
  264. package/dist/cssm/components/WriteBar/WriteBarRoot/WriteBarRoot.module.css +15 -0
  265. package/dist/cssm/components/WriteBar/WriteBarTextarea/WriteBarTextarea.js +40 -0
  266. package/dist/cssm/components/WriteBar/WriteBarTextarea/WriteBarTextarea.js.map +1 -0
  267. package/dist/cssm/components/WriteBar/WriteBarTextarea/WriteBarTextarea.module.css +43 -0
  268. package/dist/cssm/helpers/math.js +6 -0
  269. package/dist/cssm/helpers/math.js.map +1 -1
  270. package/dist/cssm/hoc/withPlatform.js +3 -2
  271. package/dist/cssm/hoc/withPlatform.js.map +1 -1
  272. package/dist/cssm/hooks/useAdaptivityConditionalRender/types.js.map +1 -1
  273. package/dist/cssm/hooks/useAnimationFrame.js +40 -0
  274. package/dist/cssm/hooks/useAnimationFrame.js.map +1 -0
  275. package/dist/cssm/hooks/useAutoFocus.js +4 -1
  276. package/dist/cssm/hooks/useAutoFocus.js.map +1 -1
  277. package/dist/cssm/hooks/useColorScheme.js +3 -3
  278. package/dist/cssm/hooks/useColorScheme.js.map +1 -1
  279. package/dist/cssm/hooks/useConfigDirection.js +3 -3
  280. package/dist/cssm/hooks/useConfigDirection.js.map +1 -1
  281. package/dist/cssm/hooks/useDateInput.js +1 -2
  282. package/dist/cssm/hooks/useDateInput.js.map +1 -1
  283. package/dist/cssm/hooks/useFocusTrap/useAutoFocus.js +1 -0
  284. package/dist/cssm/hooks/useFocusTrap/useAutoFocus.js.map +1 -1
  285. package/dist/cssm/hooks/useFocusTrap/useFocusTrap.js +2 -0
  286. package/dist/cssm/hooks/useFocusTrap/useFocusTrap.js.map +1 -1
  287. package/dist/cssm/hooks/useFocusVisible.js +8 -13
  288. package/dist/cssm/hooks/useFocusVisible.js.map +1 -1
  289. package/dist/cssm/hooks/useFocusWithin.js +5 -4
  290. package/dist/cssm/hooks/useFocusWithin.js.map +1 -1
  291. package/dist/cssm/hooks/useGlobalEscKeyDown.js +17 -15
  292. package/dist/cssm/hooks/useGlobalEscKeyDown.js.map +1 -1
  293. package/dist/cssm/hooks/useGlobalOnClickOutside.js +6 -2
  294. package/dist/cssm/hooks/useGlobalOnClickOutside.js.map +1 -1
  295. package/dist/cssm/hooks/useKeyboardInputTracker.js +48 -41
  296. package/dist/cssm/hooks/useKeyboardInputTracker.js.map +1 -1
  297. package/dist/cssm/hooks/useLatestRef.js +13 -0
  298. package/dist/cssm/hooks/useLatestRef.js.map +1 -0
  299. package/dist/cssm/hooks/useLocale.js +3 -3
  300. package/dist/cssm/hooks/useLocale.js.map +1 -1
  301. package/dist/cssm/hooks/useMediaQueryMatch.js +1 -0
  302. package/dist/cssm/hooks/useMediaQueryMatch.js.map +1 -1
  303. package/dist/cssm/hooks/useMutationObserver.js +3 -3
  304. package/dist/cssm/hooks/useMutationObserver.js.map +1 -1
  305. package/dist/cssm/hooks/usePlatform.js +3 -3
  306. package/dist/cssm/hooks/usePlatform.js.map +1 -1
  307. package/dist/cssm/hooks/useResizeObserver.js +4 -6
  308. package/dist/cssm/hooks/useResizeObserver.js.map +1 -1
  309. package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js +2 -1
  310. package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
  311. package/dist/cssm/hooks/useSyncHTMLWithTokens.js +3 -1
  312. package/dist/cssm/hooks/useSyncHTMLWithTokens.js.map +1 -1
  313. package/dist/cssm/hooks/useWaitTransitionFinish.js +13 -15
  314. package/dist/cssm/hooks/useWaitTransitionFinish.js.map +1 -1
  315. package/dist/cssm/index.js +1 -0
  316. package/dist/cssm/index.js.map +1 -1
  317. package/dist/cssm/lib/array.js +18 -0
  318. package/dist/cssm/lib/array.js.map +1 -0
  319. package/dist/cssm/lib/curve.js +21 -0
  320. package/dist/cssm/lib/curve.js.map +1 -0
  321. package/dist/cssm/lib/dom.js +5 -2
  322. package/dist/cssm/lib/dom.js.map +1 -1
  323. package/dist/cssm/lib/fx.js +4 -55
  324. package/dist/cssm/lib/fx.js.map +1 -1
  325. package/dist/cssm/lib/layouts/index.js.map +1 -1
  326. package/dist/cssm/lib/layouts/layoutProps.js +11 -0
  327. package/dist/cssm/lib/layouts/layoutProps.js.map +1 -1
  328. package/dist/cssm/lib/layouts/resolveLayoutProps.js +13 -11
  329. package/dist/cssm/lib/layouts/resolveLayoutProps.js.map +1 -1
  330. package/dist/cssm/lib/layouts/types.js.map +1 -1
  331. package/dist/cssm/lib/material/shapes/Shape.js +18 -0
  332. package/dist/cssm/lib/material/shapes/Shape.js.map +1 -0
  333. package/dist/cssm/lib/material/shapes/shapes.js +2250 -0
  334. package/dist/cssm/lib/material/shapes/shapes.js.map +1 -0
  335. package/dist/cssm/lib/math.js +31 -0
  336. package/dist/cssm/lib/math.js.map +1 -0
  337. package/dist/cssm/lib/svg/path/approximate.js +57 -0
  338. package/dist/cssm/lib/svg/path/approximate.js.map +1 -0
  339. package/dist/cssm/lib/svg/path/interpolate.js +121 -0
  340. package/dist/cssm/lib/svg/path/interpolate.js.map +1 -0
  341. package/dist/cssm/lib/svg/path/path.js +50 -0
  342. package/dist/cssm/lib/svg/path/path.js.map +1 -0
  343. package/dist/cssm/lib/svg/path/point.js +3 -0
  344. package/dist/cssm/lib/svg/path/point.js.map +1 -0
  345. package/dist/cssm/lib/svg/path/transform.js +110 -0
  346. package/dist/cssm/lib/svg/path/transform.js.map +1 -0
  347. package/dist/cssm/lib/tokens/useTokenClassName.js +4 -1
  348. package/dist/cssm/lib/tokens/useTokenClassName.js.map +1 -1
  349. package/dist/cssm/lib/touch/UIPanGestureRecognizer.js +2 -2
  350. package/dist/cssm/lib/touch/UIPanGestureRecognizer.js.map +1 -1
  351. package/dist/cssm/styles/layout.css +273 -0
  352. package/dist/cssm/types.js +1 -4
  353. package/dist/cssm/types.js.map +1 -1
  354. package/dist/helpers/math.d.ts +4 -0
  355. package/dist/helpers/math.d.ts.map +1 -1
  356. package/dist/helpers/math.js +6 -0
  357. package/dist/helpers/math.js.map +1 -1
  358. package/dist/hoc/withPlatform.d.ts +1 -1
  359. package/dist/hoc/withPlatform.d.ts.map +1 -1
  360. package/dist/hoc/withPlatform.js +3 -2
  361. package/dist/hoc/withPlatform.js.map +1 -1
  362. package/dist/hooks/useAdaptivityConditionalRender/types.d.ts +2 -2
  363. package/dist/hooks/useAdaptivityConditionalRender/types.js.map +1 -1
  364. package/dist/hooks/useAnimationFrame.d.ts +16 -0
  365. package/dist/hooks/useAnimationFrame.d.ts.map +1 -0
  366. package/dist/hooks/useAnimationFrame.js +40 -0
  367. package/dist/hooks/useAnimationFrame.js.map +1 -0
  368. package/dist/hooks/useAutoFocus.js +4 -1
  369. package/dist/hooks/useAutoFocus.js.map +1 -1
  370. package/dist/hooks/useColorScheme.d.ts.map +1 -1
  371. package/dist/hooks/useColorScheme.js +3 -3
  372. package/dist/hooks/useColorScheme.js.map +1 -1
  373. package/dist/hooks/useConfigDirection.d.ts.map +1 -1
  374. package/dist/hooks/useConfigDirection.js +3 -3
  375. package/dist/hooks/useConfigDirection.js.map +1 -1
  376. package/dist/hooks/useDateInput.d.ts.map +1 -1
  377. package/dist/hooks/useDateInput.js +1 -2
  378. package/dist/hooks/useDateInput.js.map +1 -1
  379. package/dist/hooks/useFocusTrap/useAutoFocus.js +1 -0
  380. package/dist/hooks/useFocusTrap/useAutoFocus.js.map +1 -1
  381. package/dist/hooks/useFocusTrap/useFocusTrap.d.ts.map +1 -1
  382. package/dist/hooks/useFocusTrap/useFocusTrap.js +2 -0
  383. package/dist/hooks/useFocusTrap/useFocusTrap.js.map +1 -1
  384. package/dist/hooks/useFocusVisible.d.ts.map +1 -1
  385. package/dist/hooks/useFocusVisible.js +8 -13
  386. package/dist/hooks/useFocusVisible.js.map +1 -1
  387. package/dist/hooks/useFocusWithin.d.ts.map +1 -1
  388. package/dist/hooks/useFocusWithin.js +5 -4
  389. package/dist/hooks/useFocusWithin.js.map +1 -1
  390. package/dist/hooks/useGlobalEscKeyDown.d.ts.map +1 -1
  391. package/dist/hooks/useGlobalEscKeyDown.js +17 -15
  392. package/dist/hooks/useGlobalEscKeyDown.js.map +1 -1
  393. package/dist/hooks/useGlobalOnClickOutside.d.ts.map +1 -1
  394. package/dist/hooks/useGlobalOnClickOutside.js +6 -2
  395. package/dist/hooks/useGlobalOnClickOutside.js.map +1 -1
  396. package/dist/hooks/useKeyboardInputTracker.d.ts +1 -19
  397. package/dist/hooks/useKeyboardInputTracker.d.ts.map +1 -1
  398. package/dist/hooks/useKeyboardInputTracker.js +48 -41
  399. package/dist/hooks/useKeyboardInputTracker.js.map +1 -1
  400. package/dist/hooks/useLatestRef.d.ts +3 -0
  401. package/dist/hooks/useLatestRef.d.ts.map +1 -0
  402. package/dist/hooks/useLatestRef.js +13 -0
  403. package/dist/hooks/useLatestRef.js.map +1 -0
  404. package/dist/hooks/useLocale.d.ts.map +1 -1
  405. package/dist/hooks/useLocale.js +3 -3
  406. package/dist/hooks/useLocale.js.map +1 -1
  407. package/dist/hooks/useMediaQueryMatch.js +1 -0
  408. package/dist/hooks/useMediaQueryMatch.js.map +1 -1
  409. package/dist/hooks/useMutationObserver.d.ts +1 -2
  410. package/dist/hooks/useMutationObserver.d.ts.map +1 -1
  411. package/dist/hooks/useMutationObserver.js +3 -3
  412. package/dist/hooks/useMutationObserver.js.map +1 -1
  413. package/dist/hooks/usePlatform.d.ts.map +1 -1
  414. package/dist/hooks/usePlatform.js +3 -3
  415. package/dist/hooks/usePlatform.js.map +1 -1
  416. package/dist/hooks/useResizeObserver.d.ts.map +1 -1
  417. package/dist/hooks/useResizeObserver.js +4 -6
  418. package/dist/hooks/useResizeObserver.js.map +1 -1
  419. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js +2 -1
  420. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
  421. package/dist/hooks/useSyncHTMLWithTokens.js +3 -1
  422. package/dist/hooks/useSyncHTMLWithTokens.js.map +1 -1
  423. package/dist/hooks/useWaitTransitionFinish.d.ts.map +1 -1
  424. package/dist/hooks/useWaitTransitionFinish.js +13 -15
  425. package/dist/hooks/useWaitTransitionFinish.js.map +1 -1
  426. package/dist/index.d.ts +1 -0
  427. package/dist/index.d.ts.map +1 -1
  428. package/dist/index.js +1 -0
  429. package/dist/index.js.map +1 -1
  430. package/dist/lib/array.d.ts +17 -0
  431. package/dist/lib/array.d.ts.map +1 -0
  432. package/dist/lib/array.js +18 -0
  433. package/dist/lib/array.js.map +1 -0
  434. package/dist/lib/curve.d.ts +9 -0
  435. package/dist/lib/curve.d.ts.map +1 -0
  436. package/dist/lib/curve.js +21 -0
  437. package/dist/lib/curve.js.map +1 -0
  438. package/dist/lib/dom.d.ts +2 -1
  439. package/dist/lib/dom.d.ts.map +1 -1
  440. package/dist/lib/dom.js +5 -2
  441. package/dist/lib/dom.js.map +1 -1
  442. package/dist/lib/fx.d.ts +1 -8
  443. package/dist/lib/fx.d.ts.map +1 -1
  444. package/dist/lib/fx.js +4 -55
  445. package/dist/lib/fx.js.map +1 -1
  446. package/dist/lib/layouts/index.d.ts +1 -1
  447. package/dist/lib/layouts/index.d.ts.map +1 -1
  448. package/dist/lib/layouts/index.js.map +1 -1
  449. package/dist/lib/layouts/layoutProps.d.ts +7 -0
  450. package/dist/lib/layouts/layoutProps.d.ts.map +1 -1
  451. package/dist/lib/layouts/layoutProps.js +11 -0
  452. package/dist/lib/layouts/layoutProps.js.map +1 -1
  453. package/dist/lib/layouts/resolveLayoutProps.d.ts.map +1 -1
  454. package/dist/lib/layouts/resolveLayoutProps.js +13 -11
  455. package/dist/lib/layouts/resolveLayoutProps.js.map +1 -1
  456. package/dist/lib/layouts/types.d.ts +29 -0
  457. package/dist/lib/layouts/types.d.ts.map +1 -1
  458. package/dist/lib/layouts/types.js.map +1 -1
  459. package/dist/lib/material/shapes/Shape.d.ts +8 -0
  460. package/dist/lib/material/shapes/Shape.d.ts.map +1 -0
  461. package/dist/lib/material/shapes/Shape.js +18 -0
  462. package/dist/lib/material/shapes/Shape.js.map +1 -0
  463. package/dist/lib/material/shapes/shapes.d.ts +43 -0
  464. package/dist/lib/material/shapes/shapes.d.ts.map +1 -0
  465. package/dist/lib/material/shapes/shapes.js +2250 -0
  466. package/dist/lib/material/shapes/shapes.js.map +1 -0
  467. package/dist/lib/math.d.ts +23 -0
  468. package/dist/lib/math.d.ts.map +1 -0
  469. package/dist/lib/math.js +31 -0
  470. package/dist/lib/math.js.map +1 -0
  471. package/dist/lib/svg/path/approximate.d.ts +21 -0
  472. package/dist/lib/svg/path/approximate.d.ts.map +1 -0
  473. package/dist/lib/svg/path/approximate.js +57 -0
  474. package/dist/lib/svg/path/approximate.js.map +1 -0
  475. package/dist/lib/svg/path/interpolate.d.ts +5 -0
  476. package/dist/lib/svg/path/interpolate.d.ts.map +1 -0
  477. package/dist/lib/svg/path/interpolate.js +121 -0
  478. package/dist/lib/svg/path/interpolate.js.map +1 -0
  479. package/dist/lib/svg/path/path.d.ts +48 -0
  480. package/dist/lib/svg/path/path.d.ts.map +1 -0
  481. package/dist/lib/svg/path/path.js +50 -0
  482. package/dist/lib/svg/path/path.js.map +1 -0
  483. package/dist/lib/svg/path/point.d.ts +3 -0
  484. package/dist/lib/svg/path/point.d.ts.map +1 -0
  485. package/dist/lib/svg/path/point.js +3 -0
  486. package/dist/lib/svg/path/point.js.map +1 -0
  487. package/dist/lib/svg/path/transform.d.ts +64 -0
  488. package/dist/lib/svg/path/transform.d.ts.map +1 -0
  489. package/dist/lib/svg/path/transform.js +110 -0
  490. package/dist/lib/svg/path/transform.js.map +1 -0
  491. package/dist/lib/tokens/useTokenClassName.d.ts.map +1 -1
  492. package/dist/lib/tokens/useTokenClassName.js +4 -1
  493. package/dist/lib/tokens/useTokenClassName.js.map +1 -1
  494. package/dist/lib/touch/UIPanGestureRecognizer.d.ts.map +1 -1
  495. package/dist/lib/touch/UIPanGestureRecognizer.js +2 -2
  496. package/dist/lib/touch/UIPanGestureRecognizer.js.map +1 -1
  497. package/dist/types.d.ts +9 -0
  498. package/dist/types.d.ts.map +1 -1
  499. package/dist/types.js +1 -4
  500. package/dist/types.js.map +1 -1
  501. package/dist/vkui.css +1 -1
  502. package/dist/vkui.css.map +1 -1
  503. package/package.json +7 -6
  504. package/src/components/ActionSheet/ActionSheet.tsx +6 -3
  505. package/src/components/AdaptivityProvider/AdaptivityContext.tsx +3 -3
  506. package/src/components/AdaptivityProvider/AdaptivityProvider.tsx +2 -2
  507. package/src/components/AppRoot/AppRoot.tsx +1 -14
  508. package/src/components/AppRoot/AppRootContext.ts +0 -2
  509. package/src/components/Calendar/Calendar.tsx +2 -2
  510. package/src/components/CalendarDay/CalendarDay.tsx +4 -2
  511. package/src/components/CalendarDays/CalendarDays.tsx +2 -2
  512. package/src/components/CalendarHeader/CalendarHeader.tsx +4 -2
  513. package/src/components/CalendarRange/CalendarRange.tsx +2 -2
  514. package/src/components/CalendarTime/CalendarTime.module.css +38 -0
  515. package/src/components/CalendarTime/CalendarTime.module.css.d.ts.map +1 -1
  516. package/src/components/CalendarTime/CalendarTime.tsx +68 -55
  517. package/src/components/CalendarTime/CalendarTimePicker.tsx +148 -62
  518. package/src/components/CalendarTime/ComboBox.tsx +189 -0
  519. package/src/components/CardScroll/CardScroll.tsx +6 -5
  520. package/src/components/CarouselBase/CarouselBase.tsx +2 -1
  521. package/src/components/ChipsSelect/useChipsSelect.ts +1 -0
  522. package/src/components/ConfigProvider/ConfigProvider.tsx +6 -3
  523. package/src/components/ConfigProvider/ConfigProviderOverride.tsx +2 -1
  524. package/src/components/ConfigProvider/ConfigProviderSubContexts.tsx +43 -0
  525. package/src/components/ContentBadge/ContentBadge.module.css +84 -91
  526. package/src/components/ContentBadge/ContentBadge.module.css.d.ts.map +1 -1
  527. package/src/components/ContentBadge/ContentBadge.tsx +73 -5
  528. package/src/components/CustomSelect/CustomSelect.tsx +19 -10
  529. package/src/components/DateInput/DateInput.tsx +3 -3
  530. package/src/components/DateRangeInput/DateRangeInput.tsx +2 -2
  531. package/src/components/Epic/ScrollSaver.tsx +1 -0
  532. package/src/components/FixedLayout/ParentWidthWrapper.tsx +48 -0
  533. package/src/components/Flex/Flex.tsx +11 -6
  534. package/src/components/GridAvatar/GridAvatar.module.css +1 -1
  535. package/src/components/GridAvatar/GridAvatar.module.css.d.ts.map +1 -1
  536. package/src/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.tsx +1 -1
  537. package/src/components/NativeSelect/NativeSelect.tsx +4 -2
  538. package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +1 -1
  539. package/src/components/PanelHeader/PanelHeader.tsx +1 -1
  540. package/src/components/Popper/Popper.tsx +1 -1
  541. package/src/components/PullToRefresh/PullToRefresh.module.css +1 -1
  542. package/src/components/PullToRefresh/PullToRefresh.tsx +10 -3
  543. package/src/components/Root/Root.tsx +10 -7
  544. package/src/components/SimpleGrid/SimpleGrid.tsx +25 -11
  545. package/src/components/Skeleton/Skeleton.tsx +6 -4
  546. package/src/components/Snackbar/Snackbar.tsx +6 -3
  547. package/src/components/Spacing/Spacing.tsx +1 -1
  548. package/src/components/Spinner/ExpressiveSpinner/ExpressiveSpinner.module.css +13 -0
  549. package/src/components/Spinner/ExpressiveSpinner/ExpressiveSpinner.module.css.d.ts.map +1 -0
  550. package/src/components/Spinner/ExpressiveSpinner/ExpressiveSpinner.tsx +73 -0
  551. package/src/components/Spinner/ExpressiveSpinner/icons.tsx +104 -0
  552. package/src/components/Spinner/SvgIcon.tsx +31 -0
  553. package/src/components/Spinner/icons.tsx +10 -13
  554. package/src/components/SplitLayout/SplitLayout.tsx +3 -3
  555. package/src/components/TabsItem/TabsItem.tsx +4 -5
  556. package/src/components/Tappable/Tappable.tsx +2 -2
  557. package/src/components/WriteBar/WriteBar.tsx +25 -59
  558. package/src/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.module.css +12 -0
  559. package/src/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.module.css.d.ts.map +1 -0
  560. package/src/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.tsx +20 -0
  561. package/src/components/WriteBar/WriteBarFormField/WriteBarFormField.module.css +18 -0
  562. package/src/components/WriteBar/WriteBarFormField/WriteBarFormField.module.css.d.ts.map +1 -0
  563. package/src/components/WriteBar/WriteBarFormField/WriteBarFormField.tsx +22 -0
  564. package/src/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.module.css +3 -0
  565. package/src/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.module.css.d.ts.map +1 -0
  566. package/src/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.tsx +23 -0
  567. package/src/components/WriteBar/WriteBarRoot/WriteBarRoot.module.css +14 -0
  568. package/src/components/WriteBar/WriteBarRoot/WriteBarRoot.module.css.d.ts.map +1 -0
  569. package/src/components/WriteBar/WriteBarRoot/WriteBarRoot.tsx +31 -0
  570. package/src/components/WriteBar/WriteBarTextarea/WriteBarTextarea.module.css +42 -0
  571. package/src/components/WriteBar/WriteBarTextarea/WriteBarTextarea.module.css.d.ts.map +1 -0
  572. package/src/components/WriteBar/WriteBarTextarea/WriteBarTextarea.tsx +48 -0
  573. package/src/helpers/math.ts +8 -0
  574. package/src/hoc/withPlatform.tsx +3 -3
  575. package/src/hooks/useAdaptivityConditionalRender/types.ts +2 -2
  576. package/src/hooks/useAnimationFrame.tsx +42 -0
  577. package/src/hooks/useAutoFocus.ts +1 -1
  578. package/src/hooks/useColorScheme.ts +3 -4
  579. package/src/hooks/useConfigDirection.ts +3 -4
  580. package/src/hooks/useDateInput.ts +1 -2
  581. package/src/hooks/useFocusTrap/useAutoFocus.ts +1 -1
  582. package/src/hooks/useFocusTrap/useFocusTrap.tsx +2 -0
  583. package/src/hooks/useFocusVisible.ts +10 -18
  584. package/src/hooks/useFocusWithin.ts +26 -23
  585. package/src/hooks/useGlobalEscKeyDown.ts +12 -15
  586. package/src/hooks/useGlobalOnClickOutside.ts +5 -2
  587. package/src/hooks/useKeyboardInputTracker.ts +68 -55
  588. package/src/hooks/useLatestRef.ts +12 -0
  589. package/src/hooks/useLocale.ts +3 -4
  590. package/src/hooks/useMediaQueryMatch.ts +1 -1
  591. package/src/hooks/useMutationObserver.ts +2 -3
  592. package/src/hooks/usePlatform.ts +3 -4
  593. package/src/hooks/useResizeObserver.ts +4 -5
  594. package/src/hooks/useSyncHTMLWithBaseVKUIClasses.ts +1 -1
  595. package/src/hooks/useSyncHTMLWithTokens.ts +1 -1
  596. package/src/hooks/useWaitTransitionFinish.ts +15 -15
  597. package/src/index.ts +1 -0
  598. package/src/lib/array.ts +19 -0
  599. package/src/lib/curve.ts +36 -0
  600. package/src/lib/dom.tsx +10 -4
  601. package/src/lib/fx.ts +5 -63
  602. package/src/lib/layouts/index.ts +1 -0
  603. package/src/lib/layouts/layoutProps.ts +8 -0
  604. package/src/lib/layouts/resolveLayoutProps.ts +19 -17
  605. package/src/lib/layouts/types.ts +29 -0
  606. package/src/lib/material/shapes/Shape.tsx +17 -0
  607. package/src/lib/material/shapes/shapes.ts +329 -0
  608. package/src/lib/math.ts +37 -0
  609. package/src/lib/svg/path/approximate.ts +81 -0
  610. package/src/lib/svg/path/interpolate.ts +151 -0
  611. package/src/lib/svg/path/path.ts +102 -0
  612. package/src/lib/svg/path/point.ts +2 -0
  613. package/src/lib/svg/path/transform.ts +147 -0
  614. package/src/lib/tokens/useTokenClassName.ts +7 -5
  615. package/src/lib/touch/UIPanGestureRecognizer.ts +2 -2
  616. package/src/types.ts +16 -0
  617. package/dist/cssm/components/WriteBar/WriteBar.module.css +0 -118
  618. package/src/components/WriteBar/WriteBar.module.css +0 -116
  619. package/src/components/WriteBar/WriteBar.module.css.d.ts.map +0 -1
@@ -1,13 +1,9 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- function iconClassName(size) {
3
- return `vkuiIcon vkuiIcon--${size} vkuiIcon--w-${size} vkuiIcon--h-${size}`;
4
- }
2
+ import * as React from "react";
3
+ import { SvgIcon } from "./SvgIcon.js";
5
4
  export function Icon16Spinner({ children }) {
6
- return /*#__PURE__*/ _jsx("svg", {
7
- className: iconClassName(16),
8
- "aria-hidden": "true",
9
- width: "16",
10
- height: "16",
5
+ return /*#__PURE__*/ _jsx(SvgIcon, {
6
+ size: 16,
11
7
  children: /*#__PURE__*/ _jsx("path", {
12
8
  fill: "currentColor",
13
9
  d: "M8 3.25a4.75 4.75 0 0 0-4.149 7.065.75.75 0 1 1-1.31.732A6.25 6.25 0 1 1 8 14.25a.75.75 0 0 1 .001-1.5 4.75 4.75 0 1 0 0-9.5Z",
@@ -16,11 +12,8 @@ export function Icon16Spinner({ children }) {
16
12
  });
17
13
  }
18
14
  export function Icon24Spinner({ children }) {
19
- return /*#__PURE__*/ _jsx("svg", {
20
- className: iconClassName(24),
21
- "aria-hidden": "true",
22
- width: "24",
23
- height: "24",
15
+ return /*#__PURE__*/ _jsx(SvgIcon, {
16
+ size: 24,
24
17
  children: /*#__PURE__*/ _jsx("path", {
25
18
  fill: "currentColor",
26
19
  d: "M16.394 5.077A8.2 8.2 0 0 0 4.58 15.49a.9.9 0 0 1-1.628.767A10 10 0 1 1 12 22a.9.9 0 0 1 0-1.8 8.2 8.2 0 0 0 4.394-15.123",
@@ -29,11 +22,8 @@ export function Icon24Spinner({ children }) {
29
22
  });
30
23
  }
31
24
  export function Icon32Spinner({ children }) {
32
- return /*#__PURE__*/ _jsx("svg", {
33
- className: iconClassName(32),
34
- "aria-hidden": "true",
35
- width: "32",
36
- height: "32",
25
+ return /*#__PURE__*/ _jsx(SvgIcon, {
26
+ size: 32,
37
27
  children: /*#__PURE__*/ _jsx("path", {
38
28
  fill: "currentColor",
39
29
  d: "M16 32a1.5 1.5 0 0 1 0-3c7.18 0 13-5.82 13-13S23.18 3 16 3 3 8.82 3 16c0 1.557.273 3.074.8 4.502A1.5 1.5 0 1 1 .986 21.54 16 16 0 0 1 0 16C0 7.163 7.163 0 16 0s16 7.163 16 16-7.163 16-16 16",
@@ -42,11 +32,8 @@ export function Icon32Spinner({ children }) {
42
32
  });
43
33
  }
44
34
  export function Icon44Spinner({ children }) {
45
- return /*#__PURE__*/ _jsx("svg", {
46
- className: iconClassName(44),
47
- "aria-hidden": "true",
48
- width: "44",
49
- height: "44",
35
+ return /*#__PURE__*/ _jsx(SvgIcon, {
36
+ size: 44,
50
37
  children: /*#__PURE__*/ _jsx("path", {
51
38
  fill: "currentColor",
52
39
  d: "M22 44a1.5 1.5 0 0 1 0-3c10.493 0 19-8.507 19-19S32.493 3 22 3 3 11.507 3 22c0 2.208.376 4.363 1.103 6.397a1.5 1.5 0 1 1-2.825 1.01A22 22 0 0 1 0 22C0 9.85 9.85 0 22 0s22 9.85 22 22-9.85 22-22 22",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Spinner/icons.tsx"],"sourcesContent":["import type * as React from 'react';\n\nfunction iconClassName(size: number) {\n return `vkuiIcon vkuiIcon--${size} vkuiIcon--w-${size} vkuiIcon--h-${size}`;\n}\n\nexport function Icon16Spinner({ children }: React.PropsWithChildren) {\n return (\n <svg className={iconClassName(16)} aria-hidden=\"true\" width=\"16\" height=\"16\">\n <path\n fill=\"currentColor\"\n d=\"M8 3.25a4.75 4.75 0 0 0-4.149 7.065.75.75 0 1 1-1.31.732A6.25 6.25 0 1 1 8 14.25a.75.75 0 0 1 .001-1.5 4.75 4.75 0 1 0 0-9.5Z\"\n >\n {children}\n </path>\n </svg>\n );\n}\n\nexport function Icon24Spinner({ children }: React.PropsWithChildren) {\n return (\n <svg className={iconClassName(24)} aria-hidden=\"true\" width=\"24\" height=\"24\">\n <path\n fill=\"currentColor\"\n d=\"M16.394 5.077A8.2 8.2 0 0 0 4.58 15.49a.9.9 0 0 1-1.628.767A10 10 0 1 1 12 22a.9.9 0 0 1 0-1.8 8.2 8.2 0 0 0 4.394-15.123\"\n >\n {children}\n </path>\n </svg>\n );\n}\n\nexport function Icon32Spinner({ children }: React.PropsWithChildren) {\n return (\n <svg className={iconClassName(32)} aria-hidden=\"true\" width=\"32\" height=\"32\">\n <path\n fill=\"currentColor\"\n d=\"M16 32a1.5 1.5 0 0 1 0-3c7.18 0 13-5.82 13-13S23.18 3 16 3 3 8.82 3 16c0 1.557.273 3.074.8 4.502A1.5 1.5 0 1 1 .986 21.54 16 16 0 0 1 0 16C0 7.163 7.163 0 16 0s16 7.163 16 16-7.163 16-16 16\"\n >\n {children}\n </path>\n </svg>\n );\n}\n\nexport function Icon44Spinner({ children }: React.PropsWithChildren) {\n return (\n <svg className={iconClassName(44)} aria-hidden=\"true\" width=\"44\" height=\"44\">\n <path\n fill=\"currentColor\"\n d=\"M22 44a1.5 1.5 0 0 1 0-3c10.493 0 19-8.507 19-19S32.493 3 22 3 3 11.507 3 22c0 2.208.376 4.363 1.103 6.397a1.5 1.5 0 1 1-2.825 1.01A22 22 0 0 1 0 22C0 9.85 9.85 0 22 0s22 9.85 22 22-9.85 22-22 22\"\n >\n {children}\n </path>\n </svg>\n );\n}\n"],"names":["iconClassName","size","Icon16Spinner","children","svg","className","aria-hidden","width","height","path","fill","d","Icon24Spinner","Icon32Spinner","Icon44Spinner"],"mappings":";AAEA,SAASA,cAAcC,IAAY;IACjC,OAAO,CAAC,mBAAmB,EAAEA,KAAK,aAAa,EAAEA,KAAK,aAAa,EAAEA,MAAM;AAC7E;AAEA,OAAO,SAASC,cAAc,EAAEC,QAAQ,EAA2B;IACjE,qBACE,KAACC;QAAIC,WAAWL,cAAc;QAAKM,eAAY;QAAOC,OAAM;QAAKC,QAAO;kBACtE,cAAA,KAACC;YACCC,MAAK;YACLC,GAAE;sBAEDR;;;AAIT;AAEA,OAAO,SAASS,cAAc,EAAET,QAAQ,EAA2B;IACjE,qBACE,KAACC;QAAIC,WAAWL,cAAc;QAAKM,eAAY;QAAOC,OAAM;QAAKC,QAAO;kBACtE,cAAA,KAACC;YACCC,MAAK;YACLC,GAAE;sBAEDR;;;AAIT;AAEA,OAAO,SAASU,cAAc,EAAEV,QAAQ,EAA2B;IACjE,qBACE,KAACC;QAAIC,WAAWL,cAAc;QAAKM,eAAY;QAAOC,OAAM;QAAKC,QAAO;kBACtE,cAAA,KAACC;YACCC,MAAK;YACLC,GAAE;sBAEDR;;;AAIT;AAEA,OAAO,SAASW,cAAc,EAAEX,QAAQ,EAA2B;IACjE,qBACE,KAACC;QAAIC,WAAWL,cAAc;QAAKM,eAAY;QAAOC,OAAM;QAAKC,QAAO;kBACtE,cAAA,KAACC;YACCC,MAAK;YACLC,GAAE;sBAEDR;;;AAIT"}
1
+ {"version":3,"sources":["../../../src/components/Spinner/icons.tsx"],"sourcesContent":["import * as React from 'react';\nimport { SvgIcon } from './SvgIcon';\n\nexport function Icon16Spinner({ children }: React.PropsWithChildren) {\n return (\n <SvgIcon size={16}>\n <path\n fill=\"currentColor\"\n d=\"M8 3.25a4.75 4.75 0 0 0-4.149 7.065.75.75 0 1 1-1.31.732A6.25 6.25 0 1 1 8 14.25a.75.75 0 0 1 .001-1.5 4.75 4.75 0 1 0 0-9.5Z\"\n >\n {children}\n </path>\n </SvgIcon>\n );\n}\n\nexport function Icon24Spinner({ children }: React.PropsWithChildren) {\n return (\n <SvgIcon size={24}>\n <path\n fill=\"currentColor\"\n d=\"M16.394 5.077A8.2 8.2 0 0 0 4.58 15.49a.9.9 0 0 1-1.628.767A10 10 0 1 1 12 22a.9.9 0 0 1 0-1.8 8.2 8.2 0 0 0 4.394-15.123\"\n >\n {children}\n </path>\n </SvgIcon>\n );\n}\n\nexport function Icon32Spinner({ children }: React.PropsWithChildren) {\n return (\n <SvgIcon size={32}>\n <path\n fill=\"currentColor\"\n d=\"M16 32a1.5 1.5 0 0 1 0-3c7.18 0 13-5.82 13-13S23.18 3 16 3 3 8.82 3 16c0 1.557.273 3.074.8 4.502A1.5 1.5 0 1 1 .986 21.54 16 16 0 0 1 0 16C0 7.163 7.163 0 16 0s16 7.163 16 16-7.163 16-16 16\"\n >\n {children}\n </path>\n </SvgIcon>\n );\n}\n\nexport function Icon44Spinner({ children }: React.PropsWithChildren) {\n return (\n <SvgIcon size={44}>\n <path\n fill=\"currentColor\"\n d=\"M22 44a1.5 1.5 0 0 1 0-3c10.493 0 19-8.507 19-19S32.493 3 22 3 3 11.507 3 22c0 2.208.376 4.363 1.103 6.397a1.5 1.5 0 1 1-2.825 1.01A22 22 0 0 1 0 22C0 9.85 9.85 0 22 0s22 9.85 22 22-9.85 22-22 22\"\n >\n {children}\n </path>\n </SvgIcon>\n );\n}\n"],"names":["React","SvgIcon","Icon16Spinner","children","size","path","fill","d","Icon24Spinner","Icon32Spinner","Icon44Spinner"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,OAAO,QAAQ,eAAY;AAEpC,OAAO,SAASC,cAAc,EAAEC,QAAQ,EAA2B;IACjE,qBACE,KAACF;QAAQG,MAAM;kBACb,cAAA,KAACC;YACCC,MAAK;YACLC,GAAE;sBAEDJ;;;AAIT;AAEA,OAAO,SAASK,cAAc,EAAEL,QAAQ,EAA2B;IACjE,qBACE,KAACF;QAAQG,MAAM;kBACb,cAAA,KAACC;YACCC,MAAK;YACLC,GAAE;sBAEDJ;;;AAIT;AAEA,OAAO,SAASM,cAAc,EAAEN,QAAQ,EAA2B;IACjE,qBACE,KAACF;QAAQG,MAAM;kBACb,cAAA,KAACC;YACCC,MAAK;YACLC,GAAE;sBAEDJ;;;AAIT;AAEA,OAAO,SAASO,cAAc,EAAEP,QAAQ,EAA2B;IACjE,qBACE,KAACF;QAAQG,MAAM;kBACb,cAAA,KAACC;YACCC,MAAK;YACLC,GAAE;sBAEDJ;;;AAIT"}
@@ -2,7 +2,7 @@ import type * as React from 'react';
2
2
  import type { HasDataAttribute, HasRootRef, HTMLAttributesWithRootRef } from '../../types';
3
3
  export interface SplitLayoutProps extends HTMLAttributesWithRootRef<HTMLDivElement> {
4
4
  /**
5
- * @deprecated Since 7.9.0. Будет удалeно в **VKUI v9**.
5
+ * @deprecated Since 7.9.0. Будет удалено в **VKUI v9**.
6
6
  * Вместо этого используйте `slotProps={ content: { getRootRef: ... } }`.
7
7
  */
8
8
  getRef?: React.Ref<HTMLDivElement> | undefined;
@@ -18,7 +18,7 @@ export interface SplitLayoutProps extends HTMLAttributesWithRootRef<HTMLDivEleme
18
18
  /**
19
19
  * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.
20
20
  *
21
- * @deprecated Since 7.0.0. Будет удалeно в **VKUI v9**.
21
+ * @deprecated Since 7.0.0. Будет удалено в **VKUI v9**.
22
22
  * Начиная с **VKUI v7** компоненты можно располагать в любом
23
23
  * месте приложения в пределах `AppRoot`.
24
24
  */
@@ -26,7 +26,7 @@ export interface SplitLayoutProps extends HTMLAttributesWithRootRef<HTMLDivEleme
26
26
  /**
27
27
  * Свойство для отрисовки `ModalRoot`.
28
28
  *
29
- * @deprecated Since 7.0.0. Будет удалeно в **VKUI v9**.
29
+ * @deprecated Since 7.0.0. Будет удалено в **VKUI v9**.
30
30
  * Начиная с **VKUI v7** `ModalRoot` можно располагать в любом
31
31
  * месте приложения в пределах `AppRoot`.
32
32
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SplitLayout/SplitLayout.tsx"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useMergeProps } from '../../hooks/useMergeProps';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type { HasDataAttribute, HasRootRef, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './SplitLayout.module.css';\n\nconst warn = warnOnce('SplitLayout');\n\nexport interface SplitLayoutProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * @deprecated Since 7.9.0. Будет удалeно в **VKUI v9**.\n * Вместо этого используйте `slotProps={ content: { getRootRef: ... } }`.\n */\n getRef?: React.Ref<HTMLDivElement> | undefined;\n /**\n * Свойства, которые можно прокинуть внутрь компонента:\n * - `root`: свойства для прокидывания в корень компонента;\n * - `content`: свойства для прокидывания в контент;.\n */\n slotProps?:\n | {\n root?:\n | (React.HTMLAttributes<HTMLDivElement> & HasRootRef<HTMLDivElement> & HasDataAttribute)\n | undefined;\n content?:\n | (React.HTMLAttributes<HTMLDivElement> & HasRootRef<HTMLDivElement> & HasDataAttribute)\n | undefined;\n }\n | undefined;\n /**\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n *\n * @deprecated Since 7.0.0. Будет удалeно в **VKUI v9**.\n * Начиная с **VKUI v7** компоненты можно располагать в любом\n * месте приложения в пределах `AppRoot`.\n */\n popout?: React.ReactNode | undefined;\n /**\n * Свойство для отрисовки `ModalRoot`.\n *\n * @deprecated Since 7.0.0. Будет удалeно в **VKUI v9**.\n * Начиная с **VKUI v7** `ModalRoot` можно располагать в любом\n * месте приложения в пределах `AppRoot`.\n */\n modal?: React.ReactNode | undefined;\n /**\n * Компонент для отрисовки заголовка.\n */\n header?: React.ReactNode | undefined;\n /**\n * Центрирует контент.\n */\n center?: boolean | undefined;\n}\n\n/**\n * @see https://vkui.io/components/split-layout\n */\nexport const SplitLayout = ({\n popout,\n modal,\n header,\n center,\n getRef,\n children,\n\n slotProps,\n ...restProps\n}: SplitLayoutProps): React.ReactNode => {\n /* istanbul ignore if: не проверяем в тестах */\n if (process.env.NODE_ENV === 'development') {\n if (getRef) {\n warn(\n 'Свойство `getRef` устаревшее, используйте `slotProps={ content: { getRootRef: ... } }`',\n );\n }\n if (popout) {\n warn(\n 'Свойство `popout` устаревшее. Передаваемый элемент можно рендерить в любом месте приложения.',\n );\n }\n if (modal) {\n warn(\n 'Свойство `modal` устаревшее. Передаваемый элемент можно рендерить в любом месте приложения.',\n );\n }\n }\n\n const rootRest = useMergeProps(restProps, slotProps?.root);\n const contentRest = useMergeProps({ getRootRef: getRef }, slotProps?.content);\n\n const platform = usePlatform();\n\n return (\n <RootComponent\n baseClassName={classNames(styles.host, platform === 'ios' && styles.ios)}\n {...rootRest}\n >\n {header}\n <RootComponent\n baseClassName={classNames(\n styles.inner,\n !!header && styles.innerHeader,\n center && styles.innerCenter,\n )}\n {...contentRest}\n >\n {children}\n {modal}\n {popout}\n </RootComponent>\n </RootComponent>\n );\n};\n"],"names":["classNames","useMergeProps","usePlatform","warnOnce","RootComponent","warn","SplitLayout","popout","modal","header","center","getRef","children","slotProps","restProps","process","env","NODE_ENV","rootRest","root","contentRest","getRootRef","content","platform","baseClassName"],"mappings":"AAAA;;AAGA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,QAAQ,QAAQ,wBAAqB;AAE9C,SAASC,aAAa,QAAQ,oCAAiC;AAG/D,MAAMC,OAAOF,SAAS;AAiDtB;;CAEC,GACD,OAAO,MAAMG,cAAc,CAAC,EAC1BC,MAAM,EACNC,KAAK,EACLC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,QAAQ,EAERC,SAAS,EACT,GAAGC,WACc;IACjB,6CAA6C,GAC7C,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,IAAIN,QAAQ;YACVN,KACE;QAEJ;QACA,IAAIE,QAAQ;YACVF,KACE;QAEJ;QACA,IAAIG,OAAO;YACTH,KACE;QAEJ;IACF;IAEA,MAAMa,WAAWjB,cAAca,WAAWD,WAAWM;IACrD,MAAMC,cAAcnB,cAAc;QAAEoB,YAAYV;IAAO,GAAGE,WAAWS;IAErE,MAAMC,WAAWrB;IAEjB,qBACE,MAACE;QACCoB,eAAexB,oCAAwBuB,aAAa;QACnD,GAAGL,QAAQ;;YAEXT;0BACD,MAACL;gBACCoB,eAAexB,qCAEb,CAAC,CAACS,0CACFC;gBAED,GAAGU,WAAW;;oBAEdR;oBACAJ;oBACAD;;;;;AAIT,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/SplitLayout/SplitLayout.tsx"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useMergeProps } from '../../hooks/useMergeProps';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type { HasDataAttribute, HasRootRef, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './SplitLayout.module.css';\n\nconst warn = warnOnce('SplitLayout');\n\nexport interface SplitLayoutProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * @deprecated Since 7.9.0. Будет удалено в **VKUI v9**.\n * Вместо этого используйте `slotProps={ content: { getRootRef: ... } }`.\n */\n getRef?: React.Ref<HTMLDivElement> | undefined;\n /**\n * Свойства, которые можно прокинуть внутрь компонента:\n * - `root`: свойства для прокидывания в корень компонента;\n * - `content`: свойства для прокидывания в контент;.\n */\n slotProps?:\n | {\n root?:\n | (React.HTMLAttributes<HTMLDivElement> & HasRootRef<HTMLDivElement> & HasDataAttribute)\n | undefined;\n content?:\n | (React.HTMLAttributes<HTMLDivElement> & HasRootRef<HTMLDivElement> & HasDataAttribute)\n | undefined;\n }\n | undefined;\n /**\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n *\n * @deprecated Since 7.0.0. Будет удалено в **VKUI v9**.\n * Начиная с **VKUI v7** компоненты можно располагать в любом\n * месте приложения в пределах `AppRoot`.\n */\n popout?: React.ReactNode | undefined;\n /**\n * Свойство для отрисовки `ModalRoot`.\n *\n * @deprecated Since 7.0.0. Будет удалено в **VKUI v9**.\n * Начиная с **VKUI v7** `ModalRoot` можно располагать в любом\n * месте приложения в пределах `AppRoot`.\n */\n modal?: React.ReactNode | undefined;\n /**\n * Компонент для отрисовки заголовка.\n */\n header?: React.ReactNode | undefined;\n /**\n * Центрирует контент.\n */\n center?: boolean | undefined;\n}\n\n/**\n * @see https://vkui.io/components/split-layout\n */\nexport const SplitLayout = ({\n popout,\n modal,\n header,\n center,\n getRef,\n children,\n\n slotProps,\n ...restProps\n}: SplitLayoutProps): React.ReactNode => {\n /* istanbul ignore if: не проверяем в тестах */\n if (process.env.NODE_ENV === 'development') {\n if (getRef) {\n warn(\n 'Свойство `getRef` устаревшее, используйте `slotProps={ content: { getRootRef: ... } }`',\n );\n }\n if (popout) {\n warn(\n 'Свойство `popout` устаревшее. Передаваемый элемент можно рендерить в любом месте приложения.',\n );\n }\n if (modal) {\n warn(\n 'Свойство `modal` устаревшее. Передаваемый элемент можно рендерить в любом месте приложения.',\n );\n }\n }\n\n const rootRest = useMergeProps(restProps, slotProps?.root);\n const contentRest = useMergeProps({ getRootRef: getRef }, slotProps?.content);\n\n const platform = usePlatform();\n\n return (\n <RootComponent\n baseClassName={classNames(styles.host, platform === 'ios' && styles.ios)}\n {...rootRest}\n >\n {header}\n <RootComponent\n baseClassName={classNames(\n styles.inner,\n !!header && styles.innerHeader,\n center && styles.innerCenter,\n )}\n {...contentRest}\n >\n {children}\n {modal}\n {popout}\n </RootComponent>\n </RootComponent>\n );\n};\n"],"names":["classNames","useMergeProps","usePlatform","warnOnce","RootComponent","warn","SplitLayout","popout","modal","header","center","getRef","children","slotProps","restProps","process","env","NODE_ENV","rootRest","root","contentRest","getRootRef","content","platform","baseClassName"],"mappings":"AAAA;;AAGA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,QAAQ,QAAQ,wBAAqB;AAE9C,SAASC,aAAa,QAAQ,oCAAiC;AAG/D,MAAMC,OAAOF,SAAS;AAiDtB;;CAEC,GACD,OAAO,MAAMG,cAAc,CAAC,EAC1BC,MAAM,EACNC,KAAK,EACLC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,QAAQ,EAERC,SAAS,EACT,GAAGC,WACc;IACjB,6CAA6C,GAC7C,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,IAAIN,QAAQ;YACVN,KACE;QAEJ;QACA,IAAIE,QAAQ;YACVF,KACE;QAEJ;QACA,IAAIG,OAAO;YACTH,KACE;QAEJ;IACF;IAEA,MAAMa,WAAWjB,cAAca,WAAWD,WAAWM;IACrD,MAAMC,cAAcnB,cAAc;QAAEoB,YAAYV;IAAO,GAAGE,WAAWS;IAErE,MAAMC,WAAWrB;IAEjB,qBACE,MAACE;QACCoB,eAAexB,oCAAwBuB,aAAa;QACnD,GAAGL,QAAQ;;YAEXT;0BACD,MAACL;gBACCoB,eAAexB,qCAEb,CAAC,CAACS,0CACFC;gBAED,GAAGU,WAAW;;oBAEdR;oBACAJ;oBACAD;;;;;AAIT,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"TabsItem.d.ts","sourceRoot":"","sources":["../../../src/components/TabsItem/TabsItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAGvF,OAAO,EAAY,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAsBxE,MAAM,WAAW,aACf,SAAQ,yBAAyB,CAAC,WAAW,CAAC,EAC5C,wBAAwB,EACxB,IAAI,CACF,iBAAiB,EACf,WAAW,GACX,YAAY,GACZ,WAAW,GACX,SAAS,GACT,WAAW,GACX,WAAW,GACX,UAAU,GACV,kBAAkB,CACrB;IACH;;;;;OAKG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACrC;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;IACjD;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAID;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,sLAgBtB,aAAa,KAAG,KAAK,CAAC,SA4IxB,CAAC"}
1
+ {"version":3,"file":"TabsItem.d.ts","sourceRoot":"","sources":["../../../src/components/TabsItem/TabsItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAGvF,OAAO,EAAY,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAsBxE,MAAM,WAAW,aACf,SAAQ,yBAAyB,CAAC,WAAW,CAAC,EAC5C,wBAAwB,EACxB,IAAI,CACF,iBAAiB,EACf,WAAW,GACX,YAAY,GACZ,WAAW,GACX,SAAS,GACT,WAAW,GACX,WAAW,GACX,UAAU,GACV,kBAAkB,CACrB;IACH;;;;;OAKG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACrC;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;IACjD;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAID;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,sLAgBtB,aAAa,KAAG,KAAK,CAAC,SA4IxB,CAAC"}
@@ -4,7 +4,6 @@ import * as React from "react";
4
4
  import { classNames, hasReactNode } from "@vkontakte/vkjs";
5
5
  import { useAdaptivity } from "../../hooks/useAdaptivity.js";
6
6
  import { useExternRef } from "../../hooks/useExternRef.js";
7
- import { useDOM } from "../../lib/dom.js";
8
7
  import { warnOnce } from "../../lib/warnOnce.js";
9
8
  import { TabsControllerContext } from "../Tabs/TabsControllerContext.js";
10
9
  import { TabsModeContext } from "../Tabs/TabsModeContext.js";
@@ -69,16 +68,15 @@ const warn = warnOnce('TabsItem');
69
68
  }
70
69
  const rootRef = useExternRef(getRootRef);
71
70
  const prevSelectedRef = React.useRef(undefined);
72
- const { document } = useDOM();
73
71
  React.useEffect(function scrollToSelectedItem() {
74
72
  const isInitialRender = prevSelectedRef.current === undefined;
75
73
  const shouldScrollToSelected = withScrollToSelectedTab && !isInitialRender && prevSelectedRef.current !== selected && selected;
76
74
  prevSelectedRef.current = selected;
77
- if (!shouldScrollToSelected || !rootRef.current || !document) {
75
+ if (!shouldScrollToSelected || !rootRef.current) {
78
76
  return;
79
77
  }
80
78
  const tabDOMRect = rootRef.current.getBoundingClientRect();
81
- const isTabVerticallyOutsideOfViewport = tabDOMRect.top < 0 || tabDOMRect.bottom > document.documentElement.clientHeight;
79
+ const isTabVerticallyOutsideOfViewport = tabDOMRect.top < 0 || tabDOMRect.bottom > rootRef.current.ownerDocument.documentElement.clientHeight;
82
80
  /* проверяем, возможен ли вертикальный скролл, а он возможен для scrollIntoView если
83
81
  * элемент вертикально вне зоны видимости */ if (isTabVerticallyOutsideOfViewport) {
84
82
  return;
@@ -95,7 +93,6 @@ const warn = warnOnce('TabsItem');
95
93
  **/ }
96
94
  }, [
97
95
  rootRef,
98
- document,
99
96
  scrollBehaviorToSelectedTab,
100
97
  withScrollToSelectedTab,
101
98
  selected
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/TabsItem/TabsItem.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useDOM } from '../../lib/dom';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type { AnchorHTMLAttributesOnly, HTMLAttributesWithRootRef } from '../../types';\nimport { TabsControllerContext } from '../Tabs/TabsControllerContext';\nimport { TabsModeContext } from '../Tabs/TabsModeContext';\nimport { Tappable, type TappableOmitProps } from '../Tappable/Tappable';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './TabsItem.module.css';\n\nconst densityClassNames = {\n none: styles.densityNone,\n compact: styles.densityCompact,\n};\n\nconst stylesMode = {\n default: styles.modeDefault,\n accent: styles.modeAccent,\n secondary: styles.modeSecondary,\n};\n\nconst fillModeClassNames = {\n stretched: styles.stretched,\n shrinked: styles.shrinked,\n};\n\nexport interface TabsItemProps\n extends HTMLAttributesWithRootRef<HTMLElement>,\n AnchorHTMLAttributesOnly,\n Pick<\n TappableOmitProps,\n | 'Component'\n | 'activeMode'\n | 'hoverMode'\n | 'hovered'\n | 'activated'\n | 'hasActive'\n | 'hasHover'\n | 'focusVisibleMode'\n > {\n /**\n * Добавляет иконку слева.\n *\n * - Для `mode=\"default\"` используйте иконки размером 24.\n * - Для всех остальных `mode` используйте иконки размером 20.\n */\n before?: React.ReactNode | undefined;\n /**\n * Добавляет элемент слева от `after`.\n *\n * - `React.ReactElement` – либо [`Badge`](https://vkui.io/components/badge) с параметром `mode=\"prominent\"`.\n * Либо [`Counter`](https://vkui.io/components/counter) с параметрами `mode=\"prominent\" size=\"s\"`.\n * - `number` – для показа текстового блока с переданным числом.\n */\n status?: React.ReactElement | number | undefined;\n /**\n * Добавляет иконку справа.\n *\n * Например, `<Icon16Dropdown />`.\n */\n after?: React.ReactNode | undefined;\n /**\n * Флаг для отображения выбранного состояния.\n */\n selected?: boolean | undefined;\n /**\n * Блокировка взаимодействия с компонентом.\n */\n disabled?: boolean | undefined;\n}\n\nconst warn = warnOnce('TabsItem');\n\n/**\n * @see https://vkui.io/components/tabs#tabs-item\n */\nexport const TabsItem = ({\n before,\n children,\n status,\n after,\n selected: selectedProp = false,\n role = 'tab',\n tabIndex: tabIndexProp,\n getRootRef,\n hoverMode = styles.hover,\n activeMode = '',\n hasActive = false,\n focusVisibleMode = 'inside',\n id,\n onClick,\n ...restProps\n}: TabsItemProps): React.ReactNode => {\n const { density = 'none' } = useAdaptivity();\n const { mode, withGaps, layoutFillMode, scrollBehaviorToSelectedTab, withScrollToSelectedTab } =\n React.useContext(TabsModeContext);\n const controller = React.useContext(TabsControllerContext);\n let statusComponent = null;\n\n const isTabFlow = role === 'tab';\n\n const selected = selectedProp || (!!id && controller?.selectedTab === id);\n\n if (hasReactNode(status)) {\n statusComponent =\n typeof status === 'number' ? (\n <Subhead\n Component=\"span\"\n className={classNames(styles.status, styles.statusCount)}\n weight=\"2\"\n >\n <VisuallyHidden>&nbsp;</VisuallyHidden>\n {status}\n </Subhead>\n ) : (\n <span className={styles.status}>\n <VisuallyHidden>&nbsp;</VisuallyHidden>\n {status}\n </span>\n );\n }\n\n if (process.env.NODE_ENV === 'development' && isTabFlow) {\n if (!restProps['aria-controls']) {\n warn(`Передайте в \"aria-controls\" id контролируемого блока`, 'warn');\n } else if (!id) {\n warn(\n `Передайте \"id\" компоненту для использования в \"aria-labelledby\" контролируемого блока`,\n 'warn',\n );\n }\n }\n\n let tabIndex = tabIndexProp;\n if (isTabFlow && tabIndex === undefined) {\n tabIndex = selected ? 0 : -1;\n }\n\n const rootRef = useExternRef(getRootRef);\n\n const prevSelectedRef = React.useRef<boolean | undefined>(undefined);\n\n const { document } = useDOM();\n React.useEffect(\n function scrollToSelectedItem() {\n const isInitialRender = prevSelectedRef.current === undefined;\n const shouldScrollToSelected =\n withScrollToSelectedTab &&\n !isInitialRender &&\n prevSelectedRef.current !== selected &&\n selected;\n\n prevSelectedRef.current = selected;\n\n if (!shouldScrollToSelected || !rootRef.current || !document) {\n return;\n }\n\n const tabDOMRect = rootRef.current.getBoundingClientRect();\n const isTabVerticallyOutsideOfViewport =\n tabDOMRect.top < 0 || tabDOMRect.bottom > document.documentElement.clientHeight;\n\n /* проверяем, возможен ли вертикальный скролл, а он возможен для scrollIntoView если\n * элемент вертикально вне зоны видимости */\n if (isTabVerticallyOutsideOfViewport) {\n return;\n }\n\n /* Не все браузеры поддерживают используемые нами опции. */\n try {\n rootRef.current.scrollIntoView({\n inline: scrollBehaviorToSelectedTab,\n block: 'nearest',\n behavior: 'smooth',\n });\n } catch {\n /* Вызывать scrollIntoView с булевым аргументом не следует, потому что это повлечёт\n * вертикальный скролл.\n **/\n }\n },\n [rootRef, document, scrollBehaviorToSelectedTab, withScrollToSelectedTab, selected],\n );\n\n const _onClick: React.MouseEventHandler<HTMLElement> = React.useCallback(\n (e) => {\n onClick?.(e);\n if (id) {\n controller?.onChange(id);\n }\n },\n [id, onClick, controller],\n );\n\n return (\n <Tappable\n getRootRef={rootRef}\n hoverMode={hoverMode}\n activeMode={activeMode}\n hasActive={hasActive}\n focusVisibleMode={focusVisibleMode}\n role={role}\n aria-selected={selected}\n tabIndex={tabIndex}\n baseClassName={classNames(\n styles.host,\n mode && stylesMode[mode],\n selected && styles.selected,\n density !== 'regular' && densityClassNames[density],\n withGaps && styles.withGaps,\n layoutFillMode !== 'auto' && fillModeClassNames[layoutFillMode],\n )}\n onClick={controller ? _onClick : onClick}\n id={id}\n {...restProps}\n >\n {before && <div className={styles.before}>{before}</div>}\n <Headline\n Component=\"span\"\n className={styles.label}\n level={mode === 'default' ? '1' : '2'}\n weight=\"2\"\n >\n {children}\n </Headline>\n {statusComponent}\n {after && <div className={styles.after}>{after}</div>}\n {mode === 'default' && (\n <div className={styles.underline} aria-hidden data-selected={selected} />\n )}\n </Tappable>\n );\n};\n"],"names":["React","classNames","hasReactNode","useAdaptivity","useExternRef","useDOM","warnOnce","TabsControllerContext","TabsModeContext","Tappable","Headline","Subhead","VisuallyHidden","densityClassNames","none","compact","stylesMode","default","accent","secondary","fillModeClassNames","stretched","shrinked","warn","TabsItem","before","children","status","after","selected","selectedProp","role","tabIndex","tabIndexProp","getRootRef","hoverMode","activeMode","hasActive","focusVisibleMode","id","onClick","restProps","density","mode","withGaps","layoutFillMode","scrollBehaviorToSelectedTab","withScrollToSelectedTab","useContext","controller","statusComponent","isTabFlow","selectedTab","Component","className","weight","span","process","env","NODE_ENV","undefined","rootRef","prevSelectedRef","useRef","document","useEffect","scrollToSelectedItem","isInitialRender","current","shouldScrollToSelected","tabDOMRect","getBoundingClientRect","isTabVerticallyOutsideOfViewport","top","bottom","documentElement","clientHeight","scrollIntoView","inline","block","behavior","_onClick","useCallback","e","onChange","aria-selected","baseClassName","div","level","aria-hidden","data-selected"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/TabsItem/TabsItem.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type { AnchorHTMLAttributesOnly, HTMLAttributesWithRootRef } from '../../types';\nimport { TabsControllerContext } from '../Tabs/TabsControllerContext';\nimport { TabsModeContext } from '../Tabs/TabsModeContext';\nimport { Tappable, type TappableOmitProps } from '../Tappable/Tappable';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './TabsItem.module.css';\n\nconst densityClassNames = {\n none: styles.densityNone,\n compact: styles.densityCompact,\n};\n\nconst stylesMode = {\n default: styles.modeDefault,\n accent: styles.modeAccent,\n secondary: styles.modeSecondary,\n};\n\nconst fillModeClassNames = {\n stretched: styles.stretched,\n shrinked: styles.shrinked,\n};\n\nexport interface TabsItemProps\n extends HTMLAttributesWithRootRef<HTMLElement>,\n AnchorHTMLAttributesOnly,\n Pick<\n TappableOmitProps,\n | 'Component'\n | 'activeMode'\n | 'hoverMode'\n | 'hovered'\n | 'activated'\n | 'hasActive'\n | 'hasHover'\n | 'focusVisibleMode'\n > {\n /**\n * Добавляет иконку слева.\n *\n * - Для `mode=\"default\"` используйте иконки размером 24.\n * - Для всех остальных `mode` используйте иконки размером 20.\n */\n before?: React.ReactNode | undefined;\n /**\n * Добавляет элемент слева от `after`.\n *\n * - `React.ReactElement` – либо [`Badge`](https://vkui.io/components/badge) с параметром `mode=\"prominent\"`.\n * Либо [`Counter`](https://vkui.io/components/counter) с параметрами `mode=\"prominent\" size=\"s\"`.\n * - `number` – для показа текстового блока с переданным числом.\n */\n status?: React.ReactElement | number | undefined;\n /**\n * Добавляет иконку справа.\n *\n * Например, `<Icon16Dropdown />`.\n */\n after?: React.ReactNode | undefined;\n /**\n * Флаг для отображения выбранного состояния.\n */\n selected?: boolean | undefined;\n /**\n * Блокировка взаимодействия с компонентом.\n */\n disabled?: boolean | undefined;\n}\n\nconst warn = warnOnce('TabsItem');\n\n/**\n * @see https://vkui.io/components/tabs#tabs-item\n */\nexport const TabsItem = ({\n before,\n children,\n status,\n after,\n selected: selectedProp = false,\n role = 'tab',\n tabIndex: tabIndexProp,\n getRootRef,\n hoverMode = styles.hover,\n activeMode = '',\n hasActive = false,\n focusVisibleMode = 'inside',\n id,\n onClick,\n ...restProps\n}: TabsItemProps): React.ReactNode => {\n const { density = 'none' } = useAdaptivity();\n const { mode, withGaps, layoutFillMode, scrollBehaviorToSelectedTab, withScrollToSelectedTab } =\n React.useContext(TabsModeContext);\n const controller = React.useContext(TabsControllerContext);\n let statusComponent = null;\n\n const isTabFlow = role === 'tab';\n\n const selected = selectedProp || (!!id && controller?.selectedTab === id);\n\n if (hasReactNode(status)) {\n statusComponent =\n typeof status === 'number' ? (\n <Subhead\n Component=\"span\"\n className={classNames(styles.status, styles.statusCount)}\n weight=\"2\"\n >\n <VisuallyHidden>&nbsp;</VisuallyHidden>\n {status}\n </Subhead>\n ) : (\n <span className={styles.status}>\n <VisuallyHidden>&nbsp;</VisuallyHidden>\n {status}\n </span>\n );\n }\n\n if (process.env.NODE_ENV === 'development' && isTabFlow) {\n if (!restProps['aria-controls']) {\n warn(`Передайте в \"aria-controls\" id контролируемого блока`, 'warn');\n } else if (!id) {\n warn(\n `Передайте \"id\" компоненту для использования в \"aria-labelledby\" контролируемого блока`,\n 'warn',\n );\n }\n }\n\n let tabIndex = tabIndexProp;\n if (isTabFlow && tabIndex === undefined) {\n tabIndex = selected ? 0 : -1;\n }\n\n const rootRef = useExternRef(getRootRef);\n\n const prevSelectedRef = React.useRef<boolean | undefined>(undefined);\n\n React.useEffect(\n function scrollToSelectedItem() {\n const isInitialRender = prevSelectedRef.current === undefined;\n const shouldScrollToSelected =\n withScrollToSelectedTab &&\n !isInitialRender &&\n prevSelectedRef.current !== selected &&\n selected;\n\n prevSelectedRef.current = selected;\n\n if (!shouldScrollToSelected || !rootRef.current) {\n return;\n }\n\n const tabDOMRect = rootRef.current.getBoundingClientRect();\n const isTabVerticallyOutsideOfViewport =\n tabDOMRect.top < 0 ||\n tabDOMRect.bottom > rootRef.current.ownerDocument.documentElement.clientHeight;\n\n /* проверяем, возможен ли вертикальный скролл, а он возможен для scrollIntoView если\n * элемент вертикально вне зоны видимости */\n if (isTabVerticallyOutsideOfViewport) {\n return;\n }\n\n /* Не все браузеры поддерживают используемые нами опции. */\n try {\n rootRef.current.scrollIntoView({\n inline: scrollBehaviorToSelectedTab,\n block: 'nearest',\n behavior: 'smooth',\n });\n } catch {\n /* Вызывать scrollIntoView с булевым аргументом не следует, потому что это повлечёт\n * вертикальный скролл.\n **/\n }\n },\n [rootRef, scrollBehaviorToSelectedTab, withScrollToSelectedTab, selected],\n );\n\n const _onClick: React.MouseEventHandler<HTMLElement> = React.useCallback(\n (e) => {\n onClick?.(e);\n if (id) {\n controller?.onChange(id);\n }\n },\n [id, onClick, controller],\n );\n\n return (\n <Tappable\n getRootRef={rootRef}\n hoverMode={hoverMode}\n activeMode={activeMode}\n hasActive={hasActive}\n focusVisibleMode={focusVisibleMode}\n role={role}\n aria-selected={selected}\n tabIndex={tabIndex}\n baseClassName={classNames(\n styles.host,\n mode && stylesMode[mode],\n selected && styles.selected,\n density !== 'regular' && densityClassNames[density],\n withGaps && styles.withGaps,\n layoutFillMode !== 'auto' && fillModeClassNames[layoutFillMode],\n )}\n onClick={controller ? _onClick : onClick}\n id={id}\n {...restProps}\n >\n {before && <div className={styles.before}>{before}</div>}\n <Headline\n Component=\"span\"\n className={styles.label}\n level={mode === 'default' ? '1' : '2'}\n weight=\"2\"\n >\n {children}\n </Headline>\n {statusComponent}\n {after && <div className={styles.after}>{after}</div>}\n {mode === 'default' && (\n <div className={styles.underline} aria-hidden data-selected={selected} />\n )}\n </Tappable>\n );\n};\n"],"names":["React","classNames","hasReactNode","useAdaptivity","useExternRef","warnOnce","TabsControllerContext","TabsModeContext","Tappable","Headline","Subhead","VisuallyHidden","densityClassNames","none","compact","stylesMode","default","accent","secondary","fillModeClassNames","stretched","shrinked","warn","TabsItem","before","children","status","after","selected","selectedProp","role","tabIndex","tabIndexProp","getRootRef","hoverMode","activeMode","hasActive","focusVisibleMode","id","onClick","restProps","density","mode","withGaps","layoutFillMode","scrollBehaviorToSelectedTab","withScrollToSelectedTab","useContext","controller","statusComponent","isTabFlow","selectedTab","Component","className","weight","span","process","env","NODE_ENV","undefined","rootRef","prevSelectedRef","useRef","useEffect","scrollToSelectedItem","isInitialRender","current","shouldScrollToSelected","tabDOMRect","getBoundingClientRect","isTabVerticallyOutsideOfViewport","top","bottom","ownerDocument","documentElement","clientHeight","scrollIntoView","inline","block","behavior","_onClick","useCallback","e","onChange","aria-selected","baseClassName","div","level","aria-hidden","data-selected"],"mappings":"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"}
@@ -7,13 +7,13 @@ export interface TappableProps extends ClickableProps, StateProps {
7
7
  */
8
8
  borderRadiusMode?: 'auto' | 'inherit' | undefined;
9
9
  /**
10
- * @deprecated Since 7.3.0. Будет удалeно в **VKUI v9**.
10
+ * @deprecated Since 7.3.0. Будет удалено в **VKUI v9**.
11
11
  *
12
12
  * Используйте свойство `activeMode`.
13
13
  */
14
14
  activeClassName?: string | undefined;
15
15
  /**
16
- * @deprecated Since 7.3.0. Будет удалeно в **VKUI v9**.
16
+ * @deprecated Since 7.3.0. Будет удалено в **VKUI v9**.
17
17
  *
18
18
  * Используйте свойство `hoverMode`.
19
19
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Tappable/Tappable.tsx"],"sourcesContent":["'use client';\n\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { type SizeTypeValues, ViewWidth, type ViewWidthType } from '../../lib/adaptivity';\nimport { mergeCalls } from '../../lib/mergeCalls';\nimport { checkClickable, Clickable, type ClickableProps } from '../Clickable/Clickable';\nimport { Ripple, useMaybeNeedRipple, useRipple } from './Ripple';\nimport { activeClass, DEFAULT_STATE_MODE, hoverClass, type StateProps } from './state';\nimport styles from './Tappable.module.css';\n\nfunction getViewWidthClassName(\n viewWidth: ViewWidthType | 'none',\n legacySizeX: SizeTypeValues | undefined,\n) {\n // TODO [>=10]: #9015 Удалить это условие\n if (legacySizeX !== undefined && legacySizeX === 'compact') {\n return styles.withBorder;\n }\n if (viewWidth === 'none') {\n return styles.withBorderOnSmallTabletMinus;\n }\n if (viewWidth < ViewWidth.SMALL_TABLET) {\n return styles.withBorder;\n }\n return;\n}\n\nfunction hasPointerClassName(hasPointer: boolean | undefined) {\n switch (hasPointer) {\n case undefined:\n return styles.hasPointerNone;\n case false:\n return styles.hasPointerFalse;\n }\n\n return undefined;\n}\n\nexport interface TappableProps extends ClickableProps, StateProps {\n /**\n * Задает border-radius элементу\n * В режиме `auto` на маленьких экранах `border-radius: 0`, иначе определяется токеном `--vkui--size_border_radius--regular`.\n */\n borderRadiusMode?: 'auto' | 'inherit' | undefined;\n /**\n * @deprecated Since 7.3.0. Будет удалeно в **VKUI v9**.\n *\n * Используйте свойство `activeMode`.\n */\n activeClassName?: string | undefined; // TODO [>=9]: удалить неиспользуемое свойство.\n /**\n * @deprecated Since 7.3.0. Будет удалeно в **VKUI v9**.\n *\n * Используйте свойство `hoverMode`.\n */\n hoverClassName?: string | undefined; // TODO [>=9]: удалить неиспользуемое свойство.\n}\n\n/**\n * @deprecated Не наследуйтесь от этого типа и от TappableProps.\n *\n * Компонентам не нужны лишние свойства Tappable компонента.\n */\nexport type TappableOmitProps = Omit<\n TappableProps,\n 'DefaultComponent' | 'baseClassName' | 'baseStyle'\n>;\n\nexport const Tappable = ({\n baseClassName,\n borderRadiusMode = 'auto',\n children,\n hoverMode = DEFAULT_STATE_MODE,\n activeMode = DEFAULT_STATE_MODE,\n onPointerDown,\n onPointerCancel,\n ...restProps\n}: TappableProps): React.ReactNode => {\n const isClickable = checkClickable(restProps);\n\n const { sizeX: legacySizeX, viewWidth = 'none', hasPointer } = useAdaptivity();\n\n const needRipple = useMaybeNeedRipple(activeMode, hasPointer);\n const { clicks, ...rippleEvents } = useRipple(needRipple, hasPointer);\n\n const handlers = mergeCalls(rippleEvents, {\n onPointerDown,\n onPointerCancel,\n });\n\n const typeProps = restProps.Component === 'button' ? { type: 'button' } : {};\n\n return (\n <Clickable\n baseClassName={classNames(\n 'vkuiInternalTappable',\n baseClassName,\n styles.host,\n getViewWidthClassName(viewWidth, legacySizeX),\n borderRadiusMode === 'inherit' && styles.borderRadiusInherit,\n hasPointerClassName(hasPointer),\n )}\n hoverClassName={hoverClass(hoverMode)}\n activeClassName={activeClass(activeMode)}\n {...typeProps}\n {...handlers}\n {...restProps}\n >\n {children}\n {isClickable && (hoverMode === 'background' || activeMode === 'background') && (\n <Ripple needRipple={needRipple} clicks={clicks} />\n )}\n </Clickable>\n );\n};\n"],"names":["classNames","useAdaptivity","ViewWidth","mergeCalls","checkClickable","Clickable","Ripple","useMaybeNeedRipple","useRipple","activeClass","DEFAULT_STATE_MODE","hoverClass","getViewWidthClassName","viewWidth","legacySizeX","undefined","SMALL_TABLET","hasPointerClassName","hasPointer","Tappable","baseClassName","borderRadiusMode","children","hoverMode","activeMode","onPointerDown","onPointerCancel","restProps","isClickable","sizeX","needRipple","clicks","rippleEvents","handlers","typeProps","Component","type","hoverClassName","activeClassName"],"mappings":"AAAA;;AAEA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAA8BC,SAAS,QAA4B,gCAAuB;AAC1F,SAASC,UAAU,QAAQ,0BAAuB;AAClD,SAASC,cAAc,EAAEC,SAAS,QAA6B,4BAAyB;AACxF,SAASC,MAAM,EAAEC,kBAAkB,EAAEC,SAAS,QAAQ,cAAW;AACjE,SAASC,WAAW,EAAEC,kBAAkB,EAAEC,UAAU,QAAyB,aAAU;AAGvF,SAASC,sBACPC,SAAiC,EACjCC,WAAuC;IAEvC,yCAAyC;IACzC,IAAIA,gBAAgBC,aAAaD,gBAAgB,WAAW;QAC1D;IACF;IACA,IAAID,cAAc,QAAQ;QACxB;IACF;IACA,IAAIA,YAAYX,UAAUc,YAAY,EAAE;QACtC;IACF;IACA;AACF;AAEA,SAASC,oBAAoBC,UAA+B;IAC1D,OAAQA;QACN,KAAKH;YACH;QACF,KAAK;YACH;IACJ;IAEA,OAAOA;AACT;AAgCA,OAAO,MAAMI,WAAW,CAAC,EACvBC,aAAa,EACbC,mBAAmB,MAAM,EACzBC,QAAQ,EACRC,YAAYb,kBAAkB,EAC9Bc,aAAad,kBAAkB,EAC/Be,aAAa,EACbC,eAAe,EACf,GAAGC,WACW;IACd,MAAMC,cAAcxB,eAAeuB;IAEnC,MAAM,EAAEE,OAAOf,WAAW,EAAED,YAAY,MAAM,EAAEK,UAAU,EAAE,GAAGjB;IAE/D,MAAM6B,aAAavB,mBAAmBiB,YAAYN;IAClD,MAAM,EAAEa,MAAM,EAAE,GAAGC,cAAc,GAAGxB,UAAUsB,YAAYZ;IAE1D,MAAMe,WAAW9B,WAAW6B,cAAc;QACxCP;QACAC;IACF;IAEA,MAAMQ,YAAYP,UAAUQ,SAAS,KAAK,WAAW;QAAEC,MAAM;IAAS,IAAI,CAAC;IAE3E,qBACE,MAAC/B;QACCe,eAAepB,WACb,wBACAoB,qCAEAR,sBAAsBC,WAAWC,cACjCO,qBAAqB,kDACrBJ,oBAAoBC;QAEtBmB,gBAAgB1B,WAAWY;QAC3Be,iBAAiB7B,YAAYe;QAC5B,GAAGU,SAAS;QACZ,GAAGD,QAAQ;QACX,GAAGN,SAAS;;YAEZL;YACAM,eAAgBL,CAAAA,cAAc,gBAAgBC,eAAe,YAAW,mBACvE,KAAClB;gBAAOwB,YAAYA;gBAAYC,QAAQA;;;;AAIhD,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/Tappable/Tappable.tsx"],"sourcesContent":["'use client';\n\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { type SizeTypeValues, ViewWidth, type ViewWidthType } from '../../lib/adaptivity';\nimport { mergeCalls } from '../../lib/mergeCalls';\nimport { checkClickable, Clickable, type ClickableProps } from '../Clickable/Clickable';\nimport { Ripple, useMaybeNeedRipple, useRipple } from './Ripple';\nimport { activeClass, DEFAULT_STATE_MODE, hoverClass, type StateProps } from './state';\nimport styles from './Tappable.module.css';\n\nfunction getViewWidthClassName(\n viewWidth: ViewWidthType | 'none',\n legacySizeX: SizeTypeValues | undefined,\n) {\n // TODO [>=10]: #9015 Удалить это условие\n if (legacySizeX !== undefined && legacySizeX === 'compact') {\n return styles.withBorder;\n }\n if (viewWidth === 'none') {\n return styles.withBorderOnSmallTabletMinus;\n }\n if (viewWidth < ViewWidth.SMALL_TABLET) {\n return styles.withBorder;\n }\n return;\n}\n\nfunction hasPointerClassName(hasPointer: boolean | undefined) {\n switch (hasPointer) {\n case undefined:\n return styles.hasPointerNone;\n case false:\n return styles.hasPointerFalse;\n }\n\n return undefined;\n}\n\nexport interface TappableProps extends ClickableProps, StateProps {\n /**\n * Задает border-radius элементу\n * В режиме `auto` на маленьких экранах `border-radius: 0`, иначе определяется токеном `--vkui--size_border_radius--regular`.\n */\n borderRadiusMode?: 'auto' | 'inherit' | undefined;\n /**\n * @deprecated Since 7.3.0. Будет удалено в **VKUI v9**.\n *\n * Используйте свойство `activeMode`.\n */\n activeClassName?: string | undefined; // TODO [>=9]: удалить неиспользуемое свойство.\n /**\n * @deprecated Since 7.3.0. Будет удалено в **VKUI v9**.\n *\n * Используйте свойство `hoverMode`.\n */\n hoverClassName?: string | undefined; // TODO [>=9]: удалить неиспользуемое свойство.\n}\n\n/**\n * @deprecated Не наследуйтесь от этого типа и от TappableProps.\n *\n * Компонентам не нужны лишние свойства Tappable компонента.\n */\nexport type TappableOmitProps = Omit<\n TappableProps,\n 'DefaultComponent' | 'baseClassName' | 'baseStyle'\n>;\n\nexport const Tappable = ({\n baseClassName,\n borderRadiusMode = 'auto',\n children,\n hoverMode = DEFAULT_STATE_MODE,\n activeMode = DEFAULT_STATE_MODE,\n onPointerDown,\n onPointerCancel,\n ...restProps\n}: TappableProps): React.ReactNode => {\n const isClickable = checkClickable(restProps);\n\n const { sizeX: legacySizeX, viewWidth = 'none', hasPointer } = useAdaptivity();\n\n const needRipple = useMaybeNeedRipple(activeMode, hasPointer);\n const { clicks, ...rippleEvents } = useRipple(needRipple, hasPointer);\n\n const handlers = mergeCalls(rippleEvents, {\n onPointerDown,\n onPointerCancel,\n });\n\n const typeProps = restProps.Component === 'button' ? { type: 'button' } : {};\n\n return (\n <Clickable\n baseClassName={classNames(\n 'vkuiInternalTappable',\n baseClassName,\n styles.host,\n getViewWidthClassName(viewWidth, legacySizeX),\n borderRadiusMode === 'inherit' && styles.borderRadiusInherit,\n hasPointerClassName(hasPointer),\n )}\n hoverClassName={hoverClass(hoverMode)}\n activeClassName={activeClass(activeMode)}\n {...typeProps}\n {...handlers}\n {...restProps}\n >\n {children}\n {isClickable && (hoverMode === 'background' || activeMode === 'background') && (\n <Ripple needRipple={needRipple} clicks={clicks} />\n )}\n </Clickable>\n );\n};\n"],"names":["classNames","useAdaptivity","ViewWidth","mergeCalls","checkClickable","Clickable","Ripple","useMaybeNeedRipple","useRipple","activeClass","DEFAULT_STATE_MODE","hoverClass","getViewWidthClassName","viewWidth","legacySizeX","undefined","SMALL_TABLET","hasPointerClassName","hasPointer","Tappable","baseClassName","borderRadiusMode","children","hoverMode","activeMode","onPointerDown","onPointerCancel","restProps","isClickable","sizeX","needRipple","clicks","rippleEvents","handlers","typeProps","Component","type","hoverClassName","activeClassName"],"mappings":"AAAA;;AAEA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAA8BC,SAAS,QAA4B,gCAAuB;AAC1F,SAASC,UAAU,QAAQ,0BAAuB;AAClD,SAASC,cAAc,EAAEC,SAAS,QAA6B,4BAAyB;AACxF,SAASC,MAAM,EAAEC,kBAAkB,EAAEC,SAAS,QAAQ,cAAW;AACjE,SAASC,WAAW,EAAEC,kBAAkB,EAAEC,UAAU,QAAyB,aAAU;AAGvF,SAASC,sBACPC,SAAiC,EACjCC,WAAuC;IAEvC,yCAAyC;IACzC,IAAIA,gBAAgBC,aAAaD,gBAAgB,WAAW;QAC1D;IACF;IACA,IAAID,cAAc,QAAQ;QACxB;IACF;IACA,IAAIA,YAAYX,UAAUc,YAAY,EAAE;QACtC;IACF;IACA;AACF;AAEA,SAASC,oBAAoBC,UAA+B;IAC1D,OAAQA;QACN,KAAKH;YACH;QACF,KAAK;YACH;IACJ;IAEA,OAAOA;AACT;AAgCA,OAAO,MAAMI,WAAW,CAAC,EACvBC,aAAa,EACbC,mBAAmB,MAAM,EACzBC,QAAQ,EACRC,YAAYb,kBAAkB,EAC9Bc,aAAad,kBAAkB,EAC/Be,aAAa,EACbC,eAAe,EACf,GAAGC,WACW;IACd,MAAMC,cAAcxB,eAAeuB;IAEnC,MAAM,EAAEE,OAAOf,WAAW,EAAED,YAAY,MAAM,EAAEK,UAAU,EAAE,GAAGjB;IAE/D,MAAM6B,aAAavB,mBAAmBiB,YAAYN;IAClD,MAAM,EAAEa,MAAM,EAAE,GAAGC,cAAc,GAAGxB,UAAUsB,YAAYZ;IAE1D,MAAMe,WAAW9B,WAAW6B,cAAc;QACxCP;QACAC;IACF;IAEA,MAAMQ,YAAYP,UAAUQ,SAAS,KAAK,WAAW;QAAEC,MAAM;IAAS,IAAI,CAAC;IAE3E,qBACE,MAAC/B;QACCe,eAAepB,WACb,wBACAoB,qCAEAR,sBAAsBC,WAAWC,cACjCO,qBAAqB,kDACrBJ,oBAAoBC;QAEtBmB,gBAAgB1B,WAAWY;QAC3Be,iBAAiB7B,YAAYe;QAC5B,GAAGU,SAAS;QACZ,GAAGD,QAAQ;QACX,GAAGN,SAAS;;YAEZL;YACAM,eAAgBL,CAAAA,cAAc,gBAAgBC,eAAe,YAAW,mBACvE,KAAClB;gBAAOwB,YAAYA;gBAAYC,QAAQA;;;;AAIhD,EAAE"}
@@ -42,5 +42,19 @@ export interface WriteBarProps extends Pick<React.TextareaHTMLAttributes<HTMLTex
42
42
  /**
43
43
  * @see https://vkui.io/components/write-bar
44
44
  */
45
- export declare const WriteBar: ({ before, inlineAfter, after, onHeightChange, shadow, getRef, autoComplete, autoCapitalize, autoCorrect, cols, dirName, disabled, maxLength, minLength, name, placeholder, readOnly, required, value: valueProp, wrap, rows, form, onChange: onChangeProp, onFocus, onBlur, id, inputMode, defaultValue, autoFocus, tabIndex, spellCheck, slotProps, ...restProps }: WriteBarProps) => React.ReactNode;
45
+ export declare const WriteBar: {
46
+ ({ before, inlineAfter, after, onHeightChange, shadow, getRef, autoComplete, autoCapitalize, autoCorrect, cols, dirName, disabled, maxLength, minLength, name, placeholder, readOnly, required, value: valueProp, wrap, rows, form, onChange, onFocus, onBlur, id, inputMode, defaultValue, autoFocus, tabIndex, spellCheck, slotProps, ...restProps }: WriteBarProps): React.ReactNode;
47
+ FormField: {
48
+ ({ className, ...restProps }: import("../..").FlexProps): import("react/jsx-runtime").JSX.Element;
49
+ InlineAfter: ({ className, ...restProps }: import("../..").FlexProps) => import("react/jsx-runtime").JSX.Element;
50
+ };
51
+ Textarea: ({ className, getRootRef, onHeightChange, onChange, ...restProps }: import("../RootComponent/RootComponent").RootComponentProps<HTMLTextAreaElement> & {
52
+ onHeightChange?: VoidFunction | undefined;
53
+ }) => import("react/jsx-runtime").JSX.Element;
54
+ Root: ({ shadow, className, ...restProps }: import("../..").FlexProps & {
55
+ shadow?: boolean;
56
+ }) => import("react/jsx-runtime").JSX.Element;
57
+ Before: ({ className, ...restProps }: import("../..").FlexProps) => import("react/jsx-runtime").JSX.Element;
58
+ After: ({ className, ...restProps }: import("../..").FlexProps) => import("react/jsx-runtime").JSX.Element;
59
+ };
46
60
  //# sourceMappingURL=WriteBar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WriteBar.d.ts","sourceRoot":"","sources":["../../../src/components/WriteBar/WriteBar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAUhE,MAAM,WAAW,aACf,SAAQ,IAAI,CACR,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAC/C,cAAc,GACd,gBAAgB,GAChB,aAAa,GACb,MAAM,GACN,SAAS,GACT,UAAU,GACV,WAAW,GACX,WAAW,GACX,MAAM,GACN,aAAa,GACb,UAAU,GACV,UAAU,GACV,MAAM,GACN,OAAO,GACP,MAAM,GACN,MAAM,GACN,UAAU,GACV,SAAS,GACT,QAAQ,CACX,EACD,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC,EAC7E,UAAU,CAAC,cAAc,CAAC;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;IACpD;;;;OAIG;IACH,SAAS,CAAC,EACN;QACE,IAAI,CAAC,EACD,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,GACrD,UAAU,CAAC,cAAc,CAAC,GAC1B,gBAAgB,CAAC,GACnB,SAAS,CAAC;QACd,QAAQ,CAAC,EACL,CAAC,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,GAChD,UAAU,CAAC,mBAAmB,CAAC,GAC/B,gBAAgB,CAAC,GACnB,SAAS,CAAC;KACf,GACD,SAAS,CAAC;IACd;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACrC;;OAEG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1C;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC;;OAEG;IACH,cAAc,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAC1C;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CAC9B;AAYD;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,qWAsCtB,aAAa,KAAG,KAAK,CAAC,SA8ExB,CAAC"}
1
+ {"version":3,"file":"WriteBar.d.ts","sourceRoot":"","sources":["../../../src/components/WriteBar/WriteBar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAShE,MAAM,WAAW,aACf,SAAQ,IAAI,CACR,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAC/C,cAAc,GACd,gBAAgB,GAChB,aAAa,GACb,MAAM,GACN,SAAS,GACT,UAAU,GACV,WAAW,GACX,WAAW,GACX,MAAM,GACN,aAAa,GACb,UAAU,GACV,UAAU,GACV,MAAM,GACN,OAAO,GACP,MAAM,GACN,MAAM,GACN,UAAU,GACV,SAAS,GACT,QAAQ,CACX,EACD,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC,EAC7E,UAAU,CAAC,cAAc,CAAC;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;IACpD;;;;OAIG;IACH,SAAS,CAAC,EACN;QACE,IAAI,CAAC,EACD,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,GACrD,UAAU,CAAC,cAAc,CAAC,GAC1B,gBAAgB,CAAC,GACnB,SAAS,CAAC;QACd,QAAQ,CAAC,EACL,CAAC,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,GAChD,UAAU,CAAC,mBAAmB,CAAC,GAC/B,gBAAgB,CAAC,GACnB,SAAS,CAAC;KACf,GACD,SAAS,CAAC;IACd;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACrC;;OAEG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1C;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC;;OAEG;IACH,cAAc,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAC1C;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CAC9B;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ;4VAsClB,aAAa,GAAG,KAAK,CAAC,SAAS;;;;;;;;;;;;;CAoDjC,CAAC"}
@@ -1,43 +1,25 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
- import { classNames, hasReactNode } from "@vkontakte/vkjs";
5
- import { useExternRef } from "../../hooks/useExternRef.js";
4
+ import { hasReactNode } from "@vkontakte/vkjs";
6
5
  import { useMergeProps } from "../../hooks/useMergeProps.js";
7
- import { usePlatform } from "../../hooks/usePlatform.js";
8
- import { callMultiple } from "../../lib/callMultiple.js";
9
6
  import { warnOnce } from "../../lib/warnOnce.js";
10
- import { RootComponent } from "../RootComponent/RootComponent.js";
11
- import { useResizeTextarea } from "../Textarea/useResizeTextarea.js";
12
- import { Headline } from "../Typography/Headline/Headline.js";
13
- import { Title } from "../Typography/Title/Title.js";
7
+ import { WriteBarBeforeOrAfter } from "./WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.js";
8
+ import { WriteBarFormField } from "./WriteBarFormField/WriteBarFormField.js";
9
+ import { WriteBarFormFieldInlineAfter } from "./WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.js";
10
+ import { WriteBarRoot } from "./WriteBarRoot/WriteBarRoot.js";
11
+ import { WriteBarTextarea } from "./WriteBarTextarea/WriteBarTextarea.js";
14
12
  const warn = warnOnce('WriteBar');
15
- const WriteBarTypography = (props)=>{
16
- const platform = usePlatform();
17
- if (platform === 'ios') {
18
- return /*#__PURE__*/ _jsx(Title, {
19
- ...props,
20
- level: "3",
21
- weight: "3"
22
- });
23
- }
24
- return /*#__PURE__*/ _jsx(Headline, {
25
- weight: "3",
26
- ...props
27
- });
28
- };
29
13
  /**
30
14
  * @see https://vkui.io/components/write-bar
31
15
  */ export const WriteBar = ({ // WriteBarProps
32
16
  before, inlineAfter, after, onHeightChange, shadow = false, getRef, // textarea props
33
- autoComplete, autoCapitalize, autoCorrect, cols, dirName, disabled, maxLength, minLength, name, placeholder, readOnly, required, value: valueProp, wrap, rows, form, onChange: onChangeProp, onFocus, onBlur, id, inputMode, defaultValue, autoFocus, tabIndex, spellCheck, slotProps, ...restProps })=>{
17
+ autoComplete, autoCapitalize, autoCorrect, cols, dirName, disabled, maxLength, minLength, name, placeholder, readOnly, required, value: valueProp, wrap, rows, form, onChange, onFocus, onBlur, id, inputMode, defaultValue, autoFocus, tabIndex, spellCheck, slotProps, ...restProps })=>{
34
18
  /* istanbul ignore if: не проверяем в тестах */ if (process.env.NODE_ENV === 'development' && getRef) {
35
19
  warn('Свойство `getRef` устаревшее, используйте `slotProps={ textArea: { getRootRef: ... } }`');
36
20
  }
37
- const platform = usePlatform();
38
21
  const rootProps = useMergeProps(restProps, slotProps?.root);
39
- const { onChange, getRootRef: getTextAreaRef, ...textAreaRest } = useMergeProps({
40
- className: "vkuiWriteBar__textarea",
22
+ const textAreaRest = useMergeProps({
41
23
  getRootRef: getRef,
42
24
  autoComplete,
43
25
  autoCapitalize,
@@ -55,7 +37,7 @@ autoComplete, autoCapitalize, autoCorrect, cols, dirName, disabled, maxLength, m
55
37
  wrap,
56
38
  rows,
57
39
  form,
58
- onChange: onChangeProp,
40
+ onChange,
59
41
  onFocus,
60
42
  onBlur,
61
43
  id,
@@ -65,44 +47,34 @@ autoComplete, autoCapitalize, autoCorrect, cols, dirName, disabled, maxLength, m
65
47
  tabIndex,
66
48
  spellCheck
67
49
  }, slotProps?.textArea);
68
- const [refResizeTextarea, resize] = useResizeTextarea(onHeightChange, true);
69
- const textareaRef = useExternRef(getTextAreaRef, refResizeTextarea);
70
- React.useEffect(resize, [
71
- resize,
72
- platform
73
- ]);
74
- return /*#__PURE__*/ _jsx(RootComponent, {
75
- baseClassName: classNames("vkuiWriteBar__host", platform === 'ios' && "vkuiWriteBar__ios", shadow && "vkuiWriteBar__shadow"),
50
+ return /*#__PURE__*/ _jsxs(WriteBarRoot, {
51
+ shadow: shadow,
76
52
  ...rootProps,
77
- children: /*#__PURE__*/ _jsxs("div", {
78
- className: "vkuiWriteBar__form",
79
- children: [
80
- hasReactNode(before) && /*#__PURE__*/ _jsx("div", {
81
- className: "vkuiWriteBar__before",
82
- children: before
83
- }),
84
- /*#__PURE__*/ _jsxs("div", {
85
- className: "vkuiWriteBar__formIn",
86
- children: [
87
- /*#__PURE__*/ _jsx(WriteBarTypography, {
88
- Component: "textarea",
89
- onChange: callMultiple(onChange, resize),
90
- getRootRef: textareaRef,
91
- ...textAreaRest
92
- }),
93
- hasReactNode(inlineAfter) && /*#__PURE__*/ _jsx("div", {
94
- className: "vkuiWriteBar__inlineAfter",
95
- children: inlineAfter
96
- })
97
- ]
98
- }),
99
- hasReactNode(after) && /*#__PURE__*/ _jsx("div", {
100
- className: "vkuiWriteBar__after",
101
- children: after
102
- })
103
- ]
104
- })
53
+ children: [
54
+ hasReactNode(before) && /*#__PURE__*/ _jsx(WriteBarBeforeOrAfter, {
55
+ children: before
56
+ }),
57
+ /*#__PURE__*/ _jsxs(WriteBarFormField, {
58
+ children: [
59
+ /*#__PURE__*/ _jsx(WriteBarTextarea, {
60
+ onHeightChange: onHeightChange,
61
+ ...textAreaRest
62
+ }),
63
+ hasReactNode(inlineAfter) && /*#__PURE__*/ _jsx(WriteBarFormFieldInlineAfter, {
64
+ children: inlineAfter
65
+ })
66
+ ]
67
+ }),
68
+ hasReactNode(after) && /*#__PURE__*/ _jsx(WriteBarBeforeOrAfter, {
69
+ children: after
70
+ })
71
+ ]
105
72
  });
106
73
  };
74
+ WriteBar.FormField = WriteBarFormField;
75
+ WriteBar.Textarea = WriteBarTextarea;
76
+ WriteBar.Root = WriteBarRoot;
77
+ WriteBar.Before = WriteBarBeforeOrAfter;
78
+ WriteBar.After = WriteBarBeforeOrAfter;
107
79
 
108
80
  //# sourceMappingURL=WriteBar.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/WriteBar/WriteBar.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useMergeProps } from '../../hooks/useMergeProps';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type { HasDataAttribute, HasRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { useResizeTextarea } from '../Textarea/useResizeTextarea';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Title } from '../Typography/Title/Title';\nimport type { TypographyProps } from '../Typography/Typography';\nimport styles from './WriteBar.module.css';\n\nconst warn = warnOnce('WriteBar');\n\nexport interface WriteBarProps\n extends Pick<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n | 'autoComplete'\n | 'autoCapitalize'\n | 'autoCorrect'\n | 'cols'\n | 'dirName'\n | 'disabled'\n | 'maxLength'\n | 'minLength'\n | 'name'\n | 'placeholder'\n | 'readOnly'\n | 'required'\n | 'rows'\n | 'value'\n | 'wrap'\n | 'form'\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n >,\n Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'onFocus' | 'onBlur'>,\n HasRootRef<HTMLDivElement> {\n /**\n * @deprecated Since 7.9.0. Вместо этого используйте `slotProps={ textArea: { getRootRef: ... } }`.\n */\n getRef?: React.Ref<HTMLTextAreaElement> | undefined;\n /**\n * Свойства, которые можно прокинуть внутрь компонента:\n * - `root`: свойства для прокидывания в корень компонента;\n * - `textArea`: свойства для прокидывания в поле ввода.\n */\n slotProps?:\n | {\n root?:\n | (Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> &\n HasRootRef<HTMLDivElement> &\n HasDataAttribute)\n | undefined;\n textArea?:\n | (React.TextareaHTMLAttributes<HTMLTextAreaElement> &\n HasRootRef<HTMLTextAreaElement> &\n HasDataAttribute)\n | undefined;\n }\n | undefined;\n /**\n * Содержимое, отображаемое слева от поля ввода.\n */\n before?: React.ReactNode | undefined;\n /**\n * Содержимое, отображаемое поверх поля ввода (актуально для iOS).\n */\n inlineAfter?: React.ReactNode | undefined;\n /**\n * Содержимое, отображаемое справа от поля ввода.\n */\n after?: React.ReactNode | undefined;\n /**\n * Вызывается при смене высоты поля ввода.\n */\n onHeightChange?: VoidFunction | undefined;\n /**\n * Добавляет тень вокруг поля ввода.\n */\n shadow?: boolean | undefined;\n /**\n * @deprecated Неиспользуемое свойство.\n */\n children?: never | undefined;\n}\n\nconst WriteBarTypography = (props: TypographyProps) => {\n const platform = usePlatform();\n\n if (platform === 'ios') {\n return <Title {...props} level=\"3\" weight=\"3\" />;\n }\n\n return <Headline weight=\"3\" {...props} />;\n};\n\n/**\n * @see https://vkui.io/components/write-bar\n */\nexport const WriteBar = ({\n // WriteBarProps\n before,\n inlineAfter,\n after,\n onHeightChange,\n shadow = false,\n getRef,\n\n // textarea props\n autoComplete,\n autoCapitalize,\n autoCorrect,\n cols,\n dirName,\n disabled,\n maxLength,\n minLength,\n name,\n placeholder,\n readOnly,\n required,\n value: valueProp,\n wrap,\n rows,\n form,\n onChange: onChangeProp,\n onFocus,\n onBlur,\n id,\n inputMode,\n defaultValue,\n autoFocus,\n tabIndex,\n spellCheck,\n\n slotProps,\n ...restProps\n}: WriteBarProps): React.ReactNode => {\n /* istanbul ignore if: не проверяем в тестах */\n if (process.env.NODE_ENV === 'development' && getRef) {\n warn('Свойство `getRef` устаревшее, используйте `slotProps={ textArea: { getRootRef: ... } }`');\n }\n\n const platform = usePlatform();\n\n const rootProps = useMergeProps(restProps, slotProps?.root);\n\n const {\n onChange,\n getRootRef: getTextAreaRef,\n ...textAreaRest\n } = useMergeProps(\n {\n className: styles.textarea,\n getRootRef: getRef,\n autoComplete,\n autoCapitalize,\n autoCorrect,\n cols,\n dirName,\n disabled,\n maxLength,\n minLength,\n name,\n placeholder,\n readOnly,\n required,\n value: valueProp,\n wrap,\n rows,\n form,\n onChange: onChangeProp,\n onFocus,\n onBlur,\n id,\n inputMode,\n defaultValue,\n autoFocus,\n tabIndex,\n spellCheck,\n },\n slotProps?.textArea,\n );\n\n const [refResizeTextarea, resize] = useResizeTextarea(onHeightChange, true);\n const textareaRef = useExternRef(getTextAreaRef, refResizeTextarea);\n\n React.useEffect(resize, [resize, platform]);\n\n return (\n <RootComponent\n baseClassName={classNames(\n styles.host,\n platform === 'ios' && styles.ios,\n shadow && styles.shadow,\n )}\n {...rootProps}\n >\n <div className={styles.form}>\n {hasReactNode(before) && <div className={styles.before}>{before}</div>}\n\n <div className={styles.formIn}>\n <WriteBarTypography\n Component=\"textarea\"\n onChange={callMultiple(onChange, resize)}\n getRootRef={textareaRef}\n {...textAreaRest}\n />\n {hasReactNode(inlineAfter) && <div className={styles.inlineAfter}>{inlineAfter}</div>}\n </div>\n\n {hasReactNode(after) && <div className={styles.after}>{after}</div>}\n </div>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","hasReactNode","useExternRef","useMergeProps","usePlatform","callMultiple","warnOnce","RootComponent","useResizeTextarea","Headline","Title","warn","WriteBarTypography","props","platform","level","weight","WriteBar","before","inlineAfter","after","onHeightChange","shadow","getRef","autoComplete","autoCapitalize","autoCorrect","cols","dirName","disabled","maxLength","minLength","name","placeholder","readOnly","required","value","valueProp","wrap","rows","form","onChange","onChangeProp","onFocus","onBlur","id","inputMode","defaultValue","autoFocus","tabIndex","spellCheck","slotProps","restProps","process","env","NODE_ENV","rootProps","root","getRootRef","getTextAreaRef","textAreaRest","className","textArea","refResizeTextarea","resize","textareaRef","useEffect","baseClassName","div","Component"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,YAAY,QAAQ,8BAA2B;AACxD,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,YAAY,QAAQ,4BAAyB;AACtD,SAASC,QAAQ,QAAQ,wBAAqB;AAE9C,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,SAASC,iBAAiB,QAAQ,mCAAgC;AAClE,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,SAASC,KAAK,QAAQ,+BAA4B;AAIlD,MAAMC,OAAOL,SAAS;AA4EtB,MAAMM,qBAAqB,CAACC;IAC1B,MAAMC,WAAWV;IAEjB,IAAIU,aAAa,OAAO;QACtB,qBAAO,KAACJ;YAAO,GAAGG,KAAK;YAAEE,OAAM;YAAIC,QAAO;;IAC5C;IAEA,qBAAO,KAACP;QAASO,QAAO;QAAK,GAAGH,KAAK;;AACvC;AAEA;;CAEC,GACD,OAAO,MAAMI,WAAW,CAAC,EACvB,gBAAgB;AAChBC,MAAM,EACNC,WAAW,EACXC,KAAK,EACLC,cAAc,EACdC,SAAS,KAAK,EACdC,MAAM,EAEN,iBAAiB;AACjBC,YAAY,EACZC,cAAc,EACdC,WAAW,EACXC,IAAI,EACJC,OAAO,EACPC,QAAQ,EACRC,SAAS,EACTC,SAAS,EACTC,IAAI,EACJC,WAAW,EACXC,QAAQ,EACRC,QAAQ,EACRC,OAAOC,SAAS,EAChBC,IAAI,EACJC,IAAI,EACJC,IAAI,EACJC,UAAUC,YAAY,EACtBC,OAAO,EACPC,MAAM,EACNC,EAAE,EACFC,SAAS,EACTC,YAAY,EACZC,SAAS,EACTC,QAAQ,EACRC,UAAU,EAEVC,SAAS,EACT,GAAGC,WACW;IACd,6CAA6C,GAC7C,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,iBAAiBhC,QAAQ;QACpDZ,KAAK;IACP;IAEA,MAAMG,WAAWV;IAEjB,MAAMoD,YAAYrD,cAAciD,WAAWD,WAAWM;IAEtD,MAAM,EACJhB,QAAQ,EACRiB,YAAYC,cAAc,EAC1B,GAAGC,cACJ,GAAGzD,cACF;QACE0D,SAAS;QACTH,YAAYnC;QACZC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC,OAAOC;QACPC;QACAC;QACAC;QACAC,UAAUC;QACVC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;IACF,GACAC,WAAWW;IAGb,MAAM,CAACC,mBAAmBC,OAAO,GAAGxD,kBAAkBa,gBAAgB;IACtE,MAAM4C,cAAc/D,aAAayD,gBAAgBI;IAEjDhE,MAAMmE,SAAS,CAACF,QAAQ;QAACA;QAAQlD;KAAS;IAE1C,qBACE,KAACP;QACC4D,eAAenE,iCAEbc,aAAa,8BACbQ;QAED,GAAGkC,SAAS;kBAEb,cAAA,MAACY;YAAIP,SAAS;;gBACX5D,aAAaiB,yBAAW,KAACkD;oBAAIP,SAAS;8BAAkB3C;;8BAEzD,MAACkD;oBAAIP,SAAS;;sCACZ,KAACjD;4BACCyD,WAAU;4BACV5B,UAAUpC,aAAaoC,UAAUuB;4BACjCN,YAAYO;4BACX,GAAGL,YAAY;;wBAEjB3D,aAAakB,8BAAgB,KAACiD;4BAAIP,SAAS;sCAAuB1C;;;;gBAGpElB,aAAamB,wBAAU,KAACgD;oBAAIP,SAAS;8BAAiBzC;;;;;AAI/D,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/WriteBar/WriteBar.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { hasReactNode } from '@vkontakte/vkjs';\nimport { useMergeProps } from '../../hooks/useMergeProps';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type { HasDataAttribute, HasRootRef } from '../../types';\nimport { WriteBarBeforeOrAfter } from './WriteBarBeforeOrAfter/WriteBarBeforeOrAfter';\nimport { WriteBarFormField } from './WriteBarFormField/WriteBarFormField';\nimport { WriteBarFormFieldInlineAfter } from './WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter';\nimport { WriteBarRoot } from './WriteBarRoot/WriteBarRoot';\nimport { WriteBarTextarea } from './WriteBarTextarea/WriteBarTextarea';\n\nconst warn = warnOnce('WriteBar');\n\nexport interface WriteBarProps\n extends Pick<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n | 'autoComplete'\n | 'autoCapitalize'\n | 'autoCorrect'\n | 'cols'\n | 'dirName'\n | 'disabled'\n | 'maxLength'\n | 'minLength'\n | 'name'\n | 'placeholder'\n | 'readOnly'\n | 'required'\n | 'rows'\n | 'value'\n | 'wrap'\n | 'form'\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n >,\n Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'onFocus' | 'onBlur'>,\n HasRootRef<HTMLDivElement> {\n /**\n * @deprecated Since 7.9.0. Вместо этого используйте `slotProps={ textArea: { getRootRef: ... } }`.\n */\n getRef?: React.Ref<HTMLTextAreaElement> | undefined;\n /**\n * Свойства, которые можно прокинуть внутрь компонента:\n * - `root`: свойства для прокидывания в корень компонента;\n * - `textArea`: свойства для прокидывания в поле ввода.\n */\n slotProps?:\n | {\n root?:\n | (Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> &\n HasRootRef<HTMLDivElement> &\n HasDataAttribute)\n | undefined;\n textArea?:\n | (React.TextareaHTMLAttributes<HTMLTextAreaElement> &\n HasRootRef<HTMLTextAreaElement> &\n HasDataAttribute)\n | undefined;\n }\n | undefined;\n /**\n * Содержимое, отображаемое слева от поля ввода.\n */\n before?: React.ReactNode | undefined;\n /**\n * Содержимое, отображаемое поверх поля ввода (актуально для iOS).\n */\n inlineAfter?: React.ReactNode | undefined;\n /**\n * Содержимое, отображаемое справа от поля ввода.\n */\n after?: React.ReactNode | undefined;\n /**\n * Вызывается при смене высоты поля ввода.\n */\n onHeightChange?: VoidFunction | undefined;\n /**\n * Добавляет тень вокруг поля ввода.\n */\n shadow?: boolean | undefined;\n /**\n * @deprecated Неиспользуемое свойство.\n */\n children?: never | undefined;\n}\n\n/**\n * @see https://vkui.io/components/write-bar\n */\nexport const WriteBar = ({\n // WriteBarProps\n before,\n inlineAfter,\n after,\n onHeightChange,\n shadow = false,\n getRef,\n\n // textarea props\n autoComplete,\n autoCapitalize,\n autoCorrect,\n cols,\n dirName,\n disabled,\n maxLength,\n minLength,\n name,\n placeholder,\n readOnly,\n required,\n value: valueProp,\n wrap,\n rows,\n form,\n onChange,\n onFocus,\n onBlur,\n id,\n inputMode,\n defaultValue,\n autoFocus,\n tabIndex,\n spellCheck,\n\n slotProps,\n ...restProps\n}: WriteBarProps): React.ReactNode => {\n /* istanbul ignore if: не проверяем в тестах */\n if (process.env.NODE_ENV === 'development' && getRef) {\n warn('Свойство `getRef` устаревшее, используйте `slotProps={ textArea: { getRootRef: ... } }`');\n }\n\n const rootProps = useMergeProps(restProps, slotProps?.root);\n\n const textAreaRest = useMergeProps(\n {\n getRootRef: getRef,\n autoComplete,\n autoCapitalize,\n autoCorrect,\n cols,\n dirName,\n disabled,\n maxLength,\n minLength,\n name,\n placeholder,\n readOnly,\n required,\n value: valueProp,\n wrap,\n rows,\n form,\n onChange,\n onFocus,\n onBlur,\n id,\n inputMode,\n defaultValue,\n autoFocus,\n tabIndex,\n spellCheck,\n },\n slotProps?.textArea,\n );\n\n return (\n <WriteBarRoot shadow={shadow} {...rootProps}>\n {hasReactNode(before) && <WriteBarBeforeOrAfter>{before}</WriteBarBeforeOrAfter>}\n <WriteBarFormField>\n <WriteBarTextarea onHeightChange={onHeightChange} {...textAreaRest} />\n {hasReactNode(inlineAfter) && (\n <WriteBarFormFieldInlineAfter>{inlineAfter}</WriteBarFormFieldInlineAfter>\n )}\n </WriteBarFormField>\n {hasReactNode(after) && <WriteBarBeforeOrAfter>{after}</WriteBarBeforeOrAfter>}\n </WriteBarRoot>\n );\n};\n\nWriteBar.FormField = WriteBarFormField;\nWriteBar.Textarea = WriteBarTextarea;\nWriteBar.Root = WriteBarRoot;\nWriteBar.Before = WriteBarBeforeOrAfter;\nWriteBar.After = WriteBarBeforeOrAfter;\n"],"names":["React","hasReactNode","useMergeProps","warnOnce","WriteBarBeforeOrAfter","WriteBarFormField","WriteBarFormFieldInlineAfter","WriteBarRoot","WriteBarTextarea","warn","WriteBar","before","inlineAfter","after","onHeightChange","shadow","getRef","autoComplete","autoCapitalize","autoCorrect","cols","dirName","disabled","maxLength","minLength","name","placeholder","readOnly","required","value","valueProp","wrap","rows","form","onChange","onFocus","onBlur","id","inputMode","defaultValue","autoFocus","tabIndex","spellCheck","slotProps","restProps","process","env","NODE_ENV","rootProps","root","textAreaRest","getRootRef","textArea","FormField","Textarea","Root","Before","After"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,YAAY,QAAQ,kBAAkB;AAC/C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,QAAQ,QAAQ,wBAAqB;AAE9C,SAASC,qBAAqB,QAAQ,mDAAgD;AACtF,SAASC,iBAAiB,QAAQ,2CAAwC;AAC1E,SAASC,4BAA4B,QAAQ,mFAAgF;AAC7H,SAASC,YAAY,QAAQ,iCAA8B;AAC3D,SAASC,gBAAgB,QAAQ,yCAAsC;AAEvE,MAAMC,OAAON,SAAS;AA4EtB;;CAEC,GACD,OAAO,MAAMO,WAAW,CAAC,EACvB,gBAAgB;AAChBC,MAAM,EACNC,WAAW,EACXC,KAAK,EACLC,cAAc,EACdC,SAAS,KAAK,EACdC,MAAM,EAEN,iBAAiB;AACjBC,YAAY,EACZC,cAAc,EACdC,WAAW,EACXC,IAAI,EACJC,OAAO,EACPC,QAAQ,EACRC,SAAS,EACTC,SAAS,EACTC,IAAI,EACJC,WAAW,EACXC,QAAQ,EACRC,QAAQ,EACRC,OAAOC,SAAS,EAChBC,IAAI,EACJC,IAAI,EACJC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,MAAM,EACNC,EAAE,EACFC,SAAS,EACTC,YAAY,EACZC,SAAS,EACTC,QAAQ,EACRC,UAAU,EAEVC,SAAS,EACT,GAAGC,WACW;IACd,6CAA6C,GAC7C,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,iBAAiB/B,QAAQ;QACpDP,KAAK;IACP;IAEA,MAAMuC,YAAY9C,cAAc0C,WAAWD,WAAWM;IAEtD,MAAMC,eAAehD,cACnB;QACEiD,YAAYnC;QACZC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC,OAAOC;QACPC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;IACF,GACAC,WAAWS;IAGb,qBACE,MAAC7C;QAAaQ,QAAQA;QAAS,GAAGiC,SAAS;;YACxC/C,aAAaU,yBAAW,KAACP;0BAAuBO;;0BACjD,MAACN;;kCACC,KAACG;wBAAiBM,gBAAgBA;wBAAiB,GAAGoC,YAAY;;oBACjEjD,aAAaW,8BACZ,KAACN;kCAA8BM;;;;YAGlCX,aAAaY,wBAAU,KAACT;0BAAuBS;;;;AAGtD,EAAE;AAEFH,SAAS2C,SAAS,GAAGhD;AACrBK,SAAS4C,QAAQ,GAAG9C;AACpBE,SAAS6C,IAAI,GAAGhD;AAChBG,SAAS8C,MAAM,GAAGpD;AAClBM,SAAS+C,KAAK,GAAGrD"}
@@ -0,0 +1,5 @@
1
+ import { type FlexProps } from '../../../components/Flex/Flex';
2
+ type WriteBarBeforeOrAfterProps = FlexProps;
3
+ export declare const WriteBarBeforeOrAfter: ({ className, ...restProps }: WriteBarBeforeOrAfterProps) => import("react/jsx-runtime").JSX.Element;
4
+ export {};
5
+ //# sourceMappingURL=WriteBarBeforeOrAfter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteBarBeforeOrAfter.d.ts","sourceRoot":"","sources":["../../../../src/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAIrE,KAAK,0BAA0B,GAAG,SAAS,CAAC;AAE5C,eAAO,MAAM,qBAAqB,GAAI,6BAA6B,0BAA0B,4CAU5F,CAAC"}
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { classNames } from "@vkontakte/vkjs";
4
+ import { Flex } from "../../Flex/Flex.js";
5
+ import { usePlatform } from "../../../hooks/usePlatform.js";
6
+ export const WriteBarBeforeOrAfter = ({ className, ...restProps })=>{
7
+ const platform = usePlatform();
8
+ return /*#__PURE__*/ _jsx(Flex, {
9
+ align: "end",
10
+ className: classNames("vkuiWriteBarBeforeOrAfter__host", platform === 'ios' && "vkuiWriteBarBeforeOrAfter__ios", className),
11
+ ...restProps
12
+ });
13
+ };
14
+
15
+ //# sourceMappingURL=WriteBarBeforeOrAfter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/WriteBar/WriteBarBeforeOrAfter/WriteBarBeforeOrAfter.tsx"],"sourcesContent":["'use client';\n\nimport { classNames } from '@vkontakte/vkjs';\nimport { Flex, type FlexProps } from '../../../components/Flex/Flex';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport styles from './WriteBarBeforeOrAfter.module.css';\n\ntype WriteBarBeforeOrAfterProps = FlexProps;\n\nexport const WriteBarBeforeOrAfter = ({ className, ...restProps }: WriteBarBeforeOrAfterProps) => {\n const platform = usePlatform();\n\n return (\n <Flex\n align=\"end\"\n className={classNames(styles.host, platform === 'ios' && styles.ios, className)}\n {...restProps}\n />\n );\n};\n"],"names":["classNames","Flex","usePlatform","WriteBarBeforeOrAfter","className","restProps","platform","align"],"mappings":"AAAA;;AAEA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,IAAI,QAAwB,qBAAgC;AACrE,SAASC,WAAW,QAAQ,gCAA6B;AAKzD,OAAO,MAAMC,wBAAwB,CAAC,EAAEC,SAAS,EAAE,GAAGC,WAAuC;IAC3F,MAAMC,WAAWJ;IAEjB,qBACE,KAACD;QACCM,OAAM;QACNH,WAAWJ,8CAAwBM,aAAa,2CAAqBF;QACpE,GAAGC,SAAS;;AAGnB,EAAE"}
@@ -0,0 +1,8 @@
1
+ import { type FlexProps } from '../../Flex/Flex';
2
+ type WriteBarFormFieldProps = FlexProps;
3
+ export declare const WriteBarFormField: {
4
+ ({ className, ...restProps }: WriteBarFormFieldProps): import("react/jsx-runtime").JSX.Element;
5
+ InlineAfter: ({ className, ...restProps }: FlexProps) => import("react/jsx-runtime").JSX.Element;
6
+ };
7
+ export {};
8
+ //# sourceMappingURL=WriteBarFormField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteBarFormField.d.ts","sourceRoot":"","sources":["../../../../src/components/WriteBar/WriteBarFormField/WriteBarFormField.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIvD,KAAK,sBAAsB,GAAG,SAAS,CAAC;AAExC,eAAO,MAAM,iBAAiB;kCAAiC,sBAAsB;;CASpF,CAAC"}
@@ -0,0 +1,16 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { classNames } from "@vkontakte/vkjs";
4
+ import { usePlatform } from "../../../hooks/usePlatform.js";
5
+ import { Flex } from "../../Flex/Flex.js";
6
+ import { WriteBarFormFieldInlineAfter } from "./WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.js";
7
+ export const WriteBarFormField = ({ className, ...restProps })=>{
8
+ const platform = usePlatform();
9
+ return /*#__PURE__*/ _jsx(Flex, {
10
+ className: classNames("vkuiWriteBarFormField__host", platform === 'ios' && "vkuiWriteBarFormField__ios", className),
11
+ ...restProps
12
+ });
13
+ };
14
+ WriteBarFormField.InlineAfter = WriteBarFormFieldInlineAfter;
15
+
16
+ //# sourceMappingURL=WriteBarFormField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/WriteBar/WriteBarFormField/WriteBarFormField.tsx"],"sourcesContent":["'use client';\n\nimport { classNames } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../../hooks/usePlatform';\nimport { Flex, type FlexProps } from '../../Flex/Flex';\nimport { WriteBarFormFieldInlineAfter } from './WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter';\nimport styles from './WriteBarFormField.module.css';\n\ntype WriteBarFormFieldProps = FlexProps;\n\nexport const WriteBarFormField = ({ className, ...restProps }: WriteBarFormFieldProps) => {\n const platform = usePlatform();\n\n return (\n <Flex\n className={classNames(styles.host, platform === 'ios' && styles.ios, className)}\n {...restProps}\n />\n );\n};\n\nWriteBarFormField.InlineAfter = WriteBarFormFieldInlineAfter;\n"],"names":["classNames","usePlatform","Flex","WriteBarFormFieldInlineAfter","WriteBarFormField","className","restProps","platform","InlineAfter"],"mappings":"AAAA;;AAEA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,WAAW,QAAQ,gCAA6B;AACzD,SAASC,IAAI,QAAwB,qBAAkB;AACvD,SAASC,4BAA4B,QAAQ,iEAA8D;AAK3G,OAAO,MAAMC,oBAAoB,CAAC,EAAEC,SAAS,EAAE,GAAGC,WAAmC;IACnF,MAAMC,WAAWN;IAEjB,qBACE,KAACC;QACCG,WAAWL,0CAAwBO,aAAa,uCAAqBF;QACpE,GAAGC,SAAS;;AAGnB,EAAE;AAEFF,kBAAkBI,WAAW,GAAGL"}
@@ -0,0 +1,5 @@
1
+ import { type FlexProps } from '../../../../components/Flex/Flex';
2
+ type WriteBarFormFieldInlineAfterProps = FlexProps;
3
+ export declare const WriteBarFormFieldInlineAfter: ({ className, ...restProps }: WriteBarFormFieldInlineAfterProps) => import("react/jsx-runtime").JSX.Element;
4
+ export {};
5
+ //# sourceMappingURL=WriteBarFormFieldInlineAfter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteBarFormFieldInlineAfter.d.ts","sourceRoot":"","sources":["../../../../../src/components/WriteBar/WriteBarFormField/WriteBarFormFieldInlineAfter/WriteBarFormFieldInlineAfter.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAIxE,KAAK,iCAAiC,GAAG,SAAS,CAAC;AAEnD,eAAO,MAAM,4BAA4B,GAAI,6BAG1C,iCAAiC,4CAUnC,CAAC"}