@vkontakte/vkui 6.6.0 → 6.7.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 (551) hide show
  1. package/dist/cjs/components/Alert/Alert.js +1 -1
  2. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  3. package/dist/cjs/components/AspectRatio/AspectRatio.js +1 -1
  4. package/dist/cjs/components/AspectRatio/AspectRatio.js.map +1 -1
  5. package/dist/cjs/components/Badge/Badge.js +1 -1
  6. package/dist/cjs/components/Badge/Badge.js.map +1 -1
  7. package/dist/cjs/components/Button/Button.js +1 -1
  8. package/dist/cjs/components/Button/Button.js.map +1 -1
  9. package/dist/cjs/components/Calendar/Calendar.d.ts +2 -2
  10. package/dist/cjs/components/Calendar/Calendar.d.ts.map +1 -1
  11. package/dist/cjs/components/Calendar/Calendar.js +4 -2
  12. package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
  13. package/dist/cjs/components/CalendarDay/CalendarDay.d.ts +1 -0
  14. package/dist/cjs/components/CalendarDay/CalendarDay.d.ts.map +1 -1
  15. package/dist/cjs/components/CalendarDay/CalendarDay.js +26 -14
  16. package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
  17. package/dist/cjs/components/CalendarDays/CalendarDays.d.ts +3 -3
  18. package/dist/cjs/components/CalendarDays/CalendarDays.d.ts.map +1 -1
  19. package/dist/cjs/components/CalendarDays/CalendarDays.js +5 -3
  20. package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
  21. package/dist/cjs/components/CalendarRange/CalendarRange.d.ts +2 -2
  22. package/dist/cjs/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  23. package/dist/cjs/components/CalendarRange/CalendarRange.js +5 -2
  24. package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
  25. package/dist/cjs/components/CardGrid/CardGrid.js +1 -1
  26. package/dist/cjs/components/CardGrid/CardGrid.js.map +1 -1
  27. package/dist/cjs/components/Clickable/Clickable.d.ts +1 -0
  28. package/dist/cjs/components/Clickable/Clickable.d.ts.map +1 -1
  29. package/dist/cjs/components/Clickable/Clickable.js +21 -6
  30. package/dist/cjs/components/Clickable/Clickable.js.map +1 -1
  31. package/dist/cjs/components/Clickable/useState.d.ts +39 -3
  32. package/dist/cjs/components/Clickable/useState.d.ts.map +1 -1
  33. package/dist/cjs/components/Clickable/useState.js +110 -37
  34. package/dist/cjs/components/Clickable/useState.js.map +1 -1
  35. package/dist/cjs/components/Clickable/useStateWithDelay.d.ts +19 -1
  36. package/dist/cjs/components/Clickable/useStateWithDelay.d.ts.map +1 -1
  37. package/dist/cjs/components/Clickable/useStateWithDelay.js +20 -4
  38. package/dist/cjs/components/Clickable/useStateWithDelay.js.map +1 -1
  39. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +3 -2
  40. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  41. package/dist/cjs/components/CustomSelect/CustomSelect.js +7 -7
  42. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  43. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js +1 -1
  44. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  45. package/dist/cjs/components/DateInput/DateInput.d.ts +2 -2
  46. package/dist/cjs/components/DateInput/DateInput.d.ts.map +1 -1
  47. package/dist/cjs/components/DateInput/DateInput.js +5 -3
  48. package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
  49. package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts +2 -2
  50. package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  51. package/dist/cjs/components/DateRangeInput/DateRangeInput.js +6 -4
  52. package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
  53. package/dist/cjs/components/FormField/FormField.js +1 -1
  54. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  55. package/dist/cjs/components/FormItem/FormItem.js +1 -1
  56. package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
  57. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +1 -1
  58. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  59. package/dist/cjs/components/Input/Input.js +1 -1
  60. package/dist/cjs/components/Input/Input.js.map +1 -1
  61. package/dist/cjs/components/ModalRoot/ModalRoot.js +4 -14
  62. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  63. package/dist/cjs/components/ModalRoot/ModalRootDesktop.d.ts.map +1 -1
  64. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +9 -1
  65. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  66. package/dist/cjs/components/NativeSelect/NativeSelect.js +1 -1
  67. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  68. package/dist/cjs/components/Panel/Panel.js +2 -2
  69. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  70. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
  71. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
  72. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  73. package/dist/cjs/components/RichCell/RichCell.js +1 -1
  74. package/dist/cjs/components/RichCell/RichCell.js.map +1 -1
  75. package/dist/cjs/components/ScreenSpinner/ScreenSpinner.d.ts.map +1 -1
  76. package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js +4 -2
  77. package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  78. package/dist/cjs/components/ScreenSpinner/ScreenSpinnerContainer.d.ts +1 -1
  79. package/dist/cjs/components/ScreenSpinner/ScreenSpinnerContainer.d.ts.map +1 -1
  80. package/dist/cjs/components/ScreenSpinner/ScreenSpinnerContainer.js +23 -6
  81. package/dist/cjs/components/ScreenSpinner/ScreenSpinnerContainer.js.map +1 -1
  82. package/dist/cjs/components/ScreenSpinner/ScreenSpinnerLoader.d.ts.map +1 -1
  83. package/dist/cjs/components/ScreenSpinner/ScreenSpinnerLoader.js +8 -3
  84. package/dist/cjs/components/ScreenSpinner/ScreenSpinnerLoader.js.map +1 -1
  85. package/dist/cjs/components/ScreenSpinner/context.d.ts +1 -0
  86. package/dist/cjs/components/ScreenSpinner/context.d.ts.map +1 -1
  87. package/dist/cjs/components/ScreenSpinner/context.js +2 -1
  88. package/dist/cjs/components/ScreenSpinner/context.js.map +1 -1
  89. package/dist/cjs/components/ScreenSpinner/types.d.ts +5 -0
  90. package/dist/cjs/components/ScreenSpinner/types.d.ts.map +1 -1
  91. package/dist/cjs/components/Search/Search.d.ts.map +1 -1
  92. package/dist/cjs/components/Search/Search.js +16 -11
  93. package/dist/cjs/components/Search/Search.js.map +1 -1
  94. package/dist/cjs/components/SegmentedControl/SegmentedControl.js +1 -1
  95. package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
  96. package/dist/cjs/components/Select/Select.d.ts.map +1 -1
  97. package/dist/cjs/components/Select/Select.js +5 -1
  98. package/dist/cjs/components/Select/Select.js.map +1 -1
  99. package/dist/cjs/components/SelectMimicry/SelectMimicry.js +1 -1
  100. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  101. package/dist/cjs/components/SimpleCell/SimpleCell.js +1 -1
  102. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  103. package/dist/cjs/components/Skeleton/Skeleton.d.ts +1 -1
  104. package/dist/cjs/components/Skeleton/Skeleton.d.ts.map +1 -1
  105. package/dist/cjs/components/Skeleton/Skeleton.js +85 -4
  106. package/dist/cjs/components/Skeleton/Skeleton.js.map +1 -1
  107. package/dist/cjs/components/Slider/Slider.js +1 -1
  108. package/dist/cjs/components/Slider/Slider.js.map +1 -1
  109. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +1 -1
  110. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  111. package/dist/cjs/components/TabsItem/TabsItem.js +1 -1
  112. package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
  113. package/dist/cjs/components/Textarea/Textarea.js +1 -1
  114. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  115. package/dist/cjs/components/ToolButton/ToolButton.d.ts +2 -1
  116. package/dist/cjs/components/ToolButton/ToolButton.d.ts.map +1 -1
  117. package/dist/cjs/components/ToolButton/ToolButton.js +20 -4
  118. package/dist/cjs/components/ToolButton/ToolButton.js.map +1 -1
  119. package/dist/cjs/components/Typography/Caption/Caption.d.ts.map +1 -1
  120. package/dist/cjs/components/Typography/Caption/Caption.js +7 -1
  121. package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
  122. package/dist/cjs/components/Typography/DisplayTitle/DisplayTitle.d.ts.map +1 -1
  123. package/dist/cjs/components/Typography/DisplayTitle/DisplayTitle.js +7 -1
  124. package/dist/cjs/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
  125. package/dist/cjs/components/Typography/Footnote/Footnote.d.ts.map +1 -1
  126. package/dist/cjs/components/Typography/Footnote/Footnote.js +7 -1
  127. package/dist/cjs/components/Typography/Footnote/Footnote.js.map +1 -1
  128. package/dist/cjs/components/Typography/Headline/Headline.d.ts +1 -1
  129. package/dist/cjs/components/Typography/Headline/Headline.d.ts.map +1 -1
  130. package/dist/cjs/components/Typography/Headline/Headline.js +2 -4
  131. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  132. package/dist/cjs/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
  133. package/dist/cjs/components/Typography/Paragraph/Paragraph.js +7 -1
  134. package/dist/cjs/components/Typography/Paragraph/Paragraph.js.map +1 -1
  135. package/dist/cjs/components/Typography/Subhead/Subhead.js +1 -1
  136. package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
  137. package/dist/cjs/components/Typography/Text/Text.js +1 -1
  138. package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
  139. package/dist/cjs/components/Typography/Title/Title.d.ts.map +1 -1
  140. package/dist/cjs/components/Typography/Title/Title.js +7 -1
  141. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  142. package/dist/cjs/components/Typography/Typography.d.ts +7 -1
  143. package/dist/cjs/components/Typography/Typography.d.ts.map +1 -1
  144. package/dist/cjs/components/Typography/Typography.js +4 -2
  145. package/dist/cjs/components/Typography/Typography.js.map +1 -1
  146. package/dist/cjs/components/View/ViewInfinite.js +5 -16
  147. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  148. package/dist/cjs/components/WriteBar/WriteBar.js +3 -1
  149. package/dist/cjs/components/WriteBar/WriteBar.js.map +1 -1
  150. package/dist/cjs/hooks/useAdaptivityConditionalRender/constants.js +4 -4
  151. package/dist/cjs/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
  152. package/dist/cjs/hooks/useWaitTransitionFinish.d.ts +1 -1
  153. package/dist/cjs/hooks/useWaitTransitionFinish.d.ts.map +1 -1
  154. package/dist/cjs/hooks/useWaitTransitionFinish.js.map +1 -1
  155. package/dist/components/Alert/Alert.js +1 -1
  156. package/dist/components/Alert/Alert.js.map +1 -1
  157. package/dist/components/AspectRatio/AspectRatio.js +1 -1
  158. package/dist/components/AspectRatio/AspectRatio.js.map +1 -1
  159. package/dist/components/Badge/Badge.js +1 -1
  160. package/dist/components/Badge/Badge.js.map +1 -1
  161. package/dist/components/Button/Button.js +1 -1
  162. package/dist/components/Button/Button.js.map +1 -1
  163. package/dist/components/Calendar/Calendar.d.ts +2 -2
  164. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  165. package/dist/components/Calendar/Calendar.js +4 -2
  166. package/dist/components/Calendar/Calendar.js.map +1 -1
  167. package/dist/components/CalendarDay/CalendarDay.d.ts +1 -0
  168. package/dist/components/CalendarDay/CalendarDay.d.ts.map +1 -1
  169. package/dist/components/CalendarDay/CalendarDay.js +26 -14
  170. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  171. package/dist/components/CalendarDays/CalendarDays.d.ts +3 -3
  172. package/dist/components/CalendarDays/CalendarDays.d.ts.map +1 -1
  173. package/dist/components/CalendarDays/CalendarDays.js +5 -3
  174. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  175. package/dist/components/CalendarRange/CalendarRange.d.ts +2 -2
  176. package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  177. package/dist/components/CalendarRange/CalendarRange.js +5 -2
  178. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  179. package/dist/components/CardGrid/CardGrid.js +1 -1
  180. package/dist/components/CardGrid/CardGrid.js.map +1 -1
  181. package/dist/components/Clickable/Clickable.d.ts +1 -0
  182. package/dist/components/Clickable/Clickable.d.ts.map +1 -1
  183. package/dist/components/Clickable/Clickable.js +21 -7
  184. package/dist/components/Clickable/Clickable.js.map +1 -1
  185. package/dist/components/Clickable/useState.d.ts +39 -3
  186. package/dist/components/Clickable/useState.d.ts.map +1 -1
  187. package/dist/components/Clickable/useState.js +110 -37
  188. package/dist/components/Clickable/useState.js.map +1 -1
  189. package/dist/components/Clickable/useStateWithDelay.d.ts +19 -1
  190. package/dist/components/Clickable/useStateWithDelay.d.ts.map +1 -1
  191. package/dist/components/Clickable/useStateWithDelay.js +38 -4
  192. package/dist/components/Clickable/useStateWithDelay.js.map +1 -1
  193. package/dist/components/CustomSelect/CustomSelect.d.ts +3 -2
  194. package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  195. package/dist/components/CustomSelect/CustomSelect.js +7 -7
  196. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  197. package/dist/components/CustomSelectOption/CustomSelectOption.js +1 -1
  198. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  199. package/dist/components/DateInput/DateInput.d.ts +2 -2
  200. package/dist/components/DateInput/DateInput.d.ts.map +1 -1
  201. package/dist/components/DateInput/DateInput.js +5 -3
  202. package/dist/components/DateInput/DateInput.js.map +1 -1
  203. package/dist/components/DateRangeInput/DateRangeInput.d.ts +2 -2
  204. package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  205. package/dist/components/DateRangeInput/DateRangeInput.js +6 -4
  206. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  207. package/dist/components/FormField/FormField.js +1 -1
  208. package/dist/components/FormField/FormField.js.map +1 -1
  209. package/dist/components/FormItem/FormItem.js +1 -1
  210. package/dist/components/FormItem/FormItem.js.map +1 -1
  211. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +1 -1
  212. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  213. package/dist/components/Input/Input.js +1 -1
  214. package/dist/components/Input/Input.js.map +1 -1
  215. package/dist/components/ModalRoot/ModalRoot.js +4 -14
  216. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  217. package/dist/components/ModalRoot/ModalRootDesktop.d.ts.map +1 -1
  218. package/dist/components/ModalRoot/ModalRootDesktop.js +9 -1
  219. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  220. package/dist/components/NativeSelect/NativeSelect.js +1 -1
  221. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  222. package/dist/components/Panel/Panel.js +2 -2
  223. package/dist/components/Panel/Panel.js.map +1 -1
  224. package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
  225. package/dist/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
  226. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  227. package/dist/components/RichCell/RichCell.js +1 -1
  228. package/dist/components/RichCell/RichCell.js.map +1 -1
  229. package/dist/components/ScreenSpinner/ScreenSpinner.d.ts.map +1 -1
  230. package/dist/components/ScreenSpinner/ScreenSpinner.js +4 -2
  231. package/dist/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  232. package/dist/components/ScreenSpinner/ScreenSpinnerContainer.d.ts +1 -1
  233. package/dist/components/ScreenSpinner/ScreenSpinnerContainer.d.ts.map +1 -1
  234. package/dist/components/ScreenSpinner/ScreenSpinnerContainer.js +25 -8
  235. package/dist/components/ScreenSpinner/ScreenSpinnerContainer.js.map +1 -1
  236. package/dist/components/ScreenSpinner/ScreenSpinnerLoader.d.ts.map +1 -1
  237. package/dist/components/ScreenSpinner/ScreenSpinnerLoader.js +8 -3
  238. package/dist/components/ScreenSpinner/ScreenSpinnerLoader.js.map +1 -1
  239. package/dist/components/ScreenSpinner/context.d.ts +1 -0
  240. package/dist/components/ScreenSpinner/context.d.ts.map +1 -1
  241. package/dist/components/ScreenSpinner/context.js +2 -1
  242. package/dist/components/ScreenSpinner/context.js.map +1 -1
  243. package/dist/components/ScreenSpinner/types.d.ts +5 -0
  244. package/dist/components/ScreenSpinner/types.d.ts.map +1 -1
  245. package/dist/components/ScreenSpinner/types.js.map +1 -1
  246. package/dist/components/Search/Search.d.ts.map +1 -1
  247. package/dist/components/Search/Search.js +17 -12
  248. package/dist/components/Search/Search.js.map +1 -1
  249. package/dist/components/SegmentedControl/SegmentedControl.js +1 -1
  250. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  251. package/dist/components/Select/Select.d.ts.map +1 -1
  252. package/dist/components/Select/Select.js +5 -1
  253. package/dist/components/Select/Select.js.map +1 -1
  254. package/dist/components/SelectMimicry/SelectMimicry.js +1 -1
  255. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  256. package/dist/components/SimpleCell/SimpleCell.js +1 -1
  257. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  258. package/dist/components/Skeleton/Skeleton.d.ts +1 -1
  259. package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
  260. package/dist/components/Skeleton/Skeleton.js +85 -4
  261. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  262. package/dist/components/Slider/Slider.js +1 -1
  263. package/dist/components/Slider/Slider.js.map +1 -1
  264. package/dist/components/SubnavigationButton/SubnavigationButton.js +1 -1
  265. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  266. package/dist/components/TabsItem/TabsItem.js +1 -1
  267. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  268. package/dist/components/Textarea/Textarea.js +1 -1
  269. package/dist/components/Textarea/Textarea.js.map +1 -1
  270. package/dist/components/ToolButton/ToolButton.d.ts +2 -1
  271. package/dist/components/ToolButton/ToolButton.d.ts.map +1 -1
  272. package/dist/components/ToolButton/ToolButton.js +9 -1
  273. package/dist/components/ToolButton/ToolButton.js.map +1 -1
  274. package/dist/components/Typography/Caption/Caption.d.ts.map +1 -1
  275. package/dist/components/Typography/Caption/Caption.js +7 -1
  276. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  277. package/dist/components/Typography/DisplayTitle/DisplayTitle.d.ts.map +1 -1
  278. package/dist/components/Typography/DisplayTitle/DisplayTitle.js +7 -1
  279. package/dist/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
  280. package/dist/components/Typography/Footnote/Footnote.d.ts.map +1 -1
  281. package/dist/components/Typography/Footnote/Footnote.js +7 -1
  282. package/dist/components/Typography/Footnote/Footnote.js.map +1 -1
  283. package/dist/components/Typography/Headline/Headline.d.ts +1 -1
  284. package/dist/components/Typography/Headline/Headline.d.ts.map +1 -1
  285. package/dist/components/Typography/Headline/Headline.js +2 -4
  286. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  287. package/dist/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
  288. package/dist/components/Typography/Paragraph/Paragraph.js +7 -1
  289. package/dist/components/Typography/Paragraph/Paragraph.js.map +1 -1
  290. package/dist/components/Typography/Subhead/Subhead.js +1 -1
  291. package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
  292. package/dist/components/Typography/Text/Text.js +1 -1
  293. package/dist/components/Typography/Text/Text.js.map +1 -1
  294. package/dist/components/Typography/Title/Title.d.ts.map +1 -1
  295. package/dist/components/Typography/Title/Title.js +7 -1
  296. package/dist/components/Typography/Title/Title.js.map +1 -1
  297. package/dist/components/Typography/Typography.d.ts +7 -1
  298. package/dist/components/Typography/Typography.d.ts.map +1 -1
  299. package/dist/components/Typography/Typography.js +4 -2
  300. package/dist/components/Typography/Typography.js.map +1 -1
  301. package/dist/components/View/ViewInfinite.js +5 -16
  302. package/dist/components/View/ViewInfinite.js.map +1 -1
  303. package/dist/components/WriteBar/WriteBar.js +3 -1
  304. package/dist/components/WriteBar/WriteBar.js.map +1 -1
  305. package/dist/components.css +313 -3
  306. package/dist/components.css.map +1 -1
  307. package/dist/components.js.tmp +647 -301
  308. package/dist/cssm/components/Alert/Alert.js +1 -1
  309. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  310. package/dist/cssm/components/AspectRatio/AspectRatio.js +1 -1
  311. package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
  312. package/dist/cssm/components/Badge/Badge.js +1 -1
  313. package/dist/cssm/components/Badge/Badge.js.map +1 -1
  314. package/dist/cssm/components/Button/Button.js +1 -1
  315. package/dist/cssm/components/Button/Button.js.map +1 -1
  316. package/dist/cssm/components/Calendar/Calendar.d.ts +2 -2
  317. package/dist/cssm/components/Calendar/Calendar.d.ts.map +1 -1
  318. package/dist/cssm/components/Calendar/Calendar.js +3 -2
  319. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  320. package/dist/cssm/components/CalendarDay/CalendarDay.d.ts +1 -0
  321. package/dist/cssm/components/CalendarDay/CalendarDay.d.ts.map +1 -1
  322. package/dist/cssm/components/CalendarDay/CalendarDay.js +24 -13
  323. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  324. package/dist/cssm/components/CalendarDays/CalendarDays.d.ts +3 -3
  325. package/dist/cssm/components/CalendarDays/CalendarDays.d.ts.map +1 -1
  326. package/dist/cssm/components/CalendarDays/CalendarDays.js +2 -1
  327. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  328. package/dist/cssm/components/CalendarRange/CalendarRange.d.ts +2 -2
  329. package/dist/cssm/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  330. package/dist/cssm/components/CalendarRange/CalendarRange.js +3 -1
  331. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  332. package/dist/cssm/components/CardGrid/CardGrid.js +1 -1
  333. package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
  334. package/dist/cssm/components/Clickable/Clickable.d.ts +1 -0
  335. package/dist/cssm/components/Clickable/Clickable.d.ts.map +1 -1
  336. package/dist/cssm/components/Clickable/Clickable.js +16 -6
  337. package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
  338. package/dist/cssm/components/Clickable/useState.d.ts +39 -3
  339. package/dist/cssm/components/Clickable/useState.d.ts.map +1 -1
  340. package/dist/cssm/components/Clickable/useState.js +104 -36
  341. package/dist/cssm/components/Clickable/useState.js.map +1 -1
  342. package/dist/cssm/components/Clickable/useStateWithDelay.d.ts +19 -1
  343. package/dist/cssm/components/Clickable/useStateWithDelay.d.ts.map +1 -1
  344. package/dist/cssm/components/Clickable/useStateWithDelay.js +38 -4
  345. package/dist/cssm/components/Clickable/useStateWithDelay.js.map +1 -1
  346. package/dist/cssm/components/Counter/Counter.module.css +0 -14
  347. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +3 -2
  348. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  349. package/dist/cssm/components/CustomSelect/CustomSelect.js +3 -3
  350. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  351. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +1 -1
  352. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  353. package/dist/cssm/components/DateInput/DateInput.d.ts +2 -2
  354. package/dist/cssm/components/DateInput/DateInput.d.ts.map +1 -1
  355. package/dist/cssm/components/DateInput/DateInput.js +3 -2
  356. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  357. package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts +2 -2
  358. package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  359. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +4 -3
  360. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  361. package/dist/cssm/components/FormField/FormField.js +1 -1
  362. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  363. package/dist/cssm/components/FormItem/FormItem.js +1 -1
  364. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  365. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +1 -1
  366. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  367. package/dist/cssm/components/Input/Input.js +1 -1
  368. package/dist/cssm/components/Input/Input.js.map +1 -1
  369. package/dist/cssm/components/ModalRoot/ModalRootDesktop.d.ts.map +1 -1
  370. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +9 -1
  371. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  372. package/dist/cssm/components/NativeSelect/NativeSelect.js +1 -1
  373. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  374. package/dist/cssm/components/Panel/Panel.js +2 -2
  375. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  376. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
  377. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
  378. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  379. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.module.css +48 -3
  380. package/dist/cssm/components/RichCell/RichCell.js +1 -1
  381. package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
  382. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.d.ts.map +1 -1
  383. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +2 -1
  384. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  385. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.module.css +40 -0
  386. package/dist/cssm/components/ScreenSpinner/ScreenSpinnerContainer.d.ts +1 -1
  387. package/dist/cssm/components/ScreenSpinner/ScreenSpinnerContainer.d.ts.map +1 -1
  388. package/dist/cssm/components/ScreenSpinner/ScreenSpinnerContainer.js +20 -7
  389. package/dist/cssm/components/ScreenSpinner/ScreenSpinnerContainer.js.map +1 -1
  390. package/dist/cssm/components/ScreenSpinner/ScreenSpinnerLoader.d.ts.map +1 -1
  391. package/dist/cssm/components/ScreenSpinner/ScreenSpinnerLoader.js +8 -3
  392. package/dist/cssm/components/ScreenSpinner/ScreenSpinnerLoader.js.map +1 -1
  393. package/dist/cssm/components/ScreenSpinner/context.d.ts +1 -0
  394. package/dist/cssm/components/ScreenSpinner/context.d.ts.map +1 -1
  395. package/dist/cssm/components/ScreenSpinner/context.js +2 -1
  396. package/dist/cssm/components/ScreenSpinner/context.js.map +1 -1
  397. package/dist/cssm/components/ScreenSpinner/types.d.ts +5 -0
  398. package/dist/cssm/components/ScreenSpinner/types.d.ts.map +1 -1
  399. package/dist/cssm/components/ScreenSpinner/types.js.map +1 -1
  400. package/dist/cssm/components/Search/Search.d.ts.map +1 -1
  401. package/dist/cssm/components/Search/Search.js +17 -12
  402. package/dist/cssm/components/Search/Search.js.map +1 -1
  403. package/dist/cssm/components/Search/Search.module.css +25 -13
  404. package/dist/cssm/components/SegmentedControl/SegmentedControl.js +1 -1
  405. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  406. package/dist/cssm/components/Select/Select.d.ts.map +1 -1
  407. package/dist/cssm/components/Select/Select.js +1 -1
  408. package/dist/cssm/components/Select/Select.js.map +1 -1
  409. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +1 -1
  410. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  411. package/dist/cssm/components/SimpleCell/SimpleCell.js +1 -1
  412. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  413. package/dist/cssm/components/Skeleton/Skeleton.d.ts +1 -1
  414. package/dist/cssm/components/Skeleton/Skeleton.d.ts.map +1 -1
  415. package/dist/cssm/components/Skeleton/Skeleton.js +83 -3
  416. package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
  417. package/dist/cssm/components/Skeleton/Skeleton.module.css +30 -32
  418. package/dist/cssm/components/Slider/Slider.js +1 -1
  419. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  420. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +1 -1
  421. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  422. package/dist/cssm/components/TabsItem/TabsItem.js +1 -1
  423. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  424. package/dist/cssm/components/Textarea/Textarea.js +1 -1
  425. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  426. package/dist/cssm/components/ToolButton/ToolButton.d.ts +2 -1
  427. package/dist/cssm/components/ToolButton/ToolButton.d.ts.map +1 -1
  428. package/dist/cssm/components/ToolButton/ToolButton.js +9 -1
  429. package/dist/cssm/components/ToolButton/ToolButton.js.map +1 -1
  430. package/dist/cssm/components/ToolButton/ToolButton.module.css +13 -6
  431. package/dist/cssm/components/Typography/Caption/Caption.d.ts.map +1 -1
  432. package/dist/cssm/components/Typography/Caption/Caption.js +7 -1
  433. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  434. package/dist/cssm/components/Typography/Caption/Caption.module.css +240 -0
  435. package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.d.ts.map +1 -1
  436. package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.js +7 -1
  437. package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
  438. package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.module.css +160 -0
  439. package/dist/cssm/components/Typography/Footnote/Footnote.d.ts.map +1 -1
  440. package/dist/cssm/components/Typography/Footnote/Footnote.js +10 -2
  441. package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
  442. package/dist/cssm/components/Typography/Footnote/Footnote.module.css +80 -0
  443. package/dist/cssm/components/Typography/Headline/Headline.d.ts +1 -1
  444. package/dist/cssm/components/Typography/Headline/Headline.d.ts.map +1 -1
  445. package/dist/cssm/components/Typography/Headline/Headline.js +2 -3
  446. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  447. package/dist/cssm/components/Typography/Headline/Headline.module.css +48 -8
  448. package/dist/cssm/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
  449. package/dist/cssm/components/Typography/Paragraph/Paragraph.js +7 -1
  450. package/dist/cssm/components/Typography/Paragraph/Paragraph.js.map +1 -1
  451. package/dist/cssm/components/Typography/Paragraph/Paragraph.module.css +40 -0
  452. package/dist/cssm/components/Typography/Subhead/Subhead.js +1 -1
  453. package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
  454. package/dist/cssm/components/Typography/Subhead/Subhead.module.css +32 -4
  455. package/dist/cssm/components/Typography/Text/Text.js +1 -1
  456. package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
  457. package/dist/cssm/components/Typography/Text/Text.module.css +29 -4
  458. package/dist/cssm/components/Typography/Title/Title.d.ts.map +1 -1
  459. package/dist/cssm/components/Typography/Title/Title.js +7 -1
  460. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  461. package/dist/cssm/components/Typography/Title/Title.module.css +120 -0
  462. package/dist/cssm/components/Typography/Typography.d.ts +7 -1
  463. package/dist/cssm/components/Typography/Typography.d.ts.map +1 -1
  464. package/dist/cssm/components/Typography/Typography.js +3 -2
  465. package/dist/cssm/components/Typography/Typography.js.map +1 -1
  466. package/dist/cssm/components/Typography/Typography.module.css +21 -3
  467. package/dist/cssm/components/WriteBar/WriteBar.js +1 -0
  468. package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
  469. package/dist/cssm/hooks/useAdaptivityConditionalRender/constants.js +4 -4
  470. package/dist/cssm/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
  471. package/dist/cssm/hooks/useWaitTransitionFinish.d.ts +1 -1
  472. package/dist/cssm/hooks/useWaitTransitionFinish.d.ts.map +1 -1
  473. package/dist/cssm/hooks/useWaitTransitionFinish.js.map +1 -1
  474. package/dist/cssm/styles/missedThemeTokens.css +22 -0
  475. package/dist/hooks/useAdaptivityConditionalRender/constants.js +4 -4
  476. package/dist/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
  477. package/dist/hooks/useWaitTransitionFinish.d.ts +1 -1
  478. package/dist/hooks/useWaitTransitionFinish.d.ts.map +1 -1
  479. package/dist/hooks/useWaitTransitionFinish.js.map +1 -1
  480. package/dist/vkui.css +313 -3
  481. package/dist/vkui.css.map +1 -1
  482. package/dist/vkui.js.tmp +647 -301
  483. package/package.json +3 -2
  484. package/src/components/Alert/Alert.tsx +1 -1
  485. package/src/components/AspectRatio/AspectRatio.tsx +1 -1
  486. package/src/components/Badge/Badge.tsx +1 -1
  487. package/src/components/Button/Button.tsx +1 -1
  488. package/src/components/Calendar/Calendar.tsx +3 -1
  489. package/src/components/CalendarDay/CalendarDay.tsx +16 -4
  490. package/src/components/CalendarDays/CalendarDays.tsx +9 -2
  491. package/src/components/CalendarRange/CalendarRange.tsx +4 -1
  492. package/src/components/CardGrid/CardGrid.tsx +1 -1
  493. package/src/components/Clickable/Clickable.tsx +21 -3
  494. package/src/components/Clickable/useState.tsx +195 -42
  495. package/src/components/Clickable/useStateWithDelay.tsx +40 -3
  496. package/src/components/Counter/Counter.module.css +0 -12
  497. package/src/components/CustomSelect/CustomSelect.tsx +11 -10
  498. package/src/components/CustomSelectOption/CustomSelectOption.tsx +1 -1
  499. package/src/components/DateInput/DateInput.tsx +4 -1
  500. package/src/components/DateRangeInput/DateRangeInput.tsx +4 -1
  501. package/src/components/FormField/FormField.tsx +1 -1
  502. package/src/components/FormItem/FormItem.tsx +1 -1
  503. package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +1 -1
  504. package/src/components/Input/Input.tsx +1 -1
  505. package/src/components/ModalRoot/ModalRootDesktop.tsx +13 -1
  506. package/src/components/NativeSelect/NativeSelect.tsx +1 -1
  507. package/src/components/Panel/Panel.tsx +2 -2
  508. package/src/components/PanelHeaderButton/PanelHeaderButton.module.css +44 -3
  509. package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +1 -1
  510. package/src/components/RichCell/RichCell.tsx +1 -1
  511. package/src/components/ScreenSpinner/ScreenSpinner.module.css +35 -0
  512. package/src/components/ScreenSpinner/ScreenSpinner.tsx +2 -1
  513. package/src/components/ScreenSpinner/ScreenSpinnerContainer.tsx +15 -4
  514. package/src/components/ScreenSpinner/ScreenSpinnerLoader.tsx +16 -3
  515. package/src/components/ScreenSpinner/context.ts +2 -0
  516. package/src/components/ScreenSpinner/types.tsx +5 -0
  517. package/src/components/Search/Search.module.css +24 -13
  518. package/src/components/Search/Search.tsx +19 -14
  519. package/src/components/SegmentedControl/SegmentedControl.tsx +1 -1
  520. package/src/components/Select/Select.tsx +4 -0
  521. package/src/components/SelectMimicry/SelectMimicry.tsx +1 -1
  522. package/src/components/SimpleCell/SimpleCell.tsx +1 -1
  523. package/src/components/Skeleton/Skeleton.module.css +30 -32
  524. package/src/components/Skeleton/Skeleton.tsx +90 -2
  525. package/src/components/Slider/Slider.tsx +1 -1
  526. package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -1
  527. package/src/components/TabsItem/TabsItem.tsx +1 -1
  528. package/src/components/Textarea/Textarea.tsx +1 -1
  529. package/src/components/ToolButton/ToolButton.module.css +12 -6
  530. package/src/components/ToolButton/ToolButton.tsx +15 -2
  531. package/src/components/Typography/Caption/Caption.module.css +240 -0
  532. package/src/components/Typography/Caption/Caption.tsx +14 -1
  533. package/src/components/Typography/DisplayTitle/DisplayTitle.module.css +160 -0
  534. package/src/components/Typography/DisplayTitle/DisplayTitle.tsx +13 -1
  535. package/src/components/Typography/Footnote/Footnote.module.css +80 -0
  536. package/src/components/Typography/Footnote/Footnote.tsx +24 -9
  537. package/src/components/Typography/Headline/Headline.module.css +48 -8
  538. package/src/components/Typography/Headline/Headline.tsx +1 -3
  539. package/src/components/Typography/Paragraph/Paragraph.module.css +40 -0
  540. package/src/components/Typography/Paragraph/Paragraph.tsx +13 -1
  541. package/src/components/Typography/Subhead/Subhead.module.css +32 -4
  542. package/src/components/Typography/Subhead/Subhead.tsx +1 -1
  543. package/src/components/Typography/Text/Text.module.css +29 -4
  544. package/src/components/Typography/Text/Text.tsx +1 -1
  545. package/src/components/Typography/Title/Title.module.css +120 -0
  546. package/src/components/Typography/Title/Title.tsx +13 -1
  547. package/src/components/Typography/Typography.module.css +20 -3
  548. package/src/components/Typography/Typography.tsx +10 -0
  549. package/src/components/WriteBar/WriteBar.tsx +1 -1
  550. package/src/hooks/useAdaptivityConditionalRender/constants.ts +4 -4
  551. package/src/hooks/useWaitTransitionFinish.ts +2 -2
@@ -1,40 +1,77 @@
1
1
  import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
2
+ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
2
3
  import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
3
4
  import * as React from 'react';
4
5
  import { classNames, noop } from '@vkontakte/vkjs';
5
- import { callMultiple } from '../../lib/callMultiple';
6
6
  import { mergeCalls } from '../../lib/mergeCalls';
7
7
  import { useStateWithDelay } from './useStateWithDelay';
8
8
  export const DEFAULT_ACTIVE_EFFECT_DELAY = 600;
9
9
  const ACTIVE_DELAY = 70;
10
10
  /**
11
11
  * Управляет наведением на компонент, игнорирует тач события
12
- */ function useHover({ hovered, hoverClassName, hasHover = true, lockState }) {
13
- const [hoveredState, setHover] = React.useState(false);
14
- const hover = hasHover && !lockState && (hovered || hoveredState) ? hoverClassName : undefined;
12
+ */ function useHover({ hovered, hasHover = true, lockState, setParentStateLock }) {
13
+ const [hoveredStateLocal, setHoveredStateLocal] = React.useState(false);
14
+ const prevIsHoveredRef = React.useRef(undefined);
15
+ const handleHover = React.useCallback((isHover)=>{
16
+ setHoveredStateLocal(isHover);
17
+ const isHovered = calculateStateValue({
18
+ hasState: hasHover,
19
+ isLocked: lockState,
20
+ stateValueControlled: Boolean(hovered),
21
+ stateValueLocal: isHover
22
+ });
23
+ // проверка сделана чтобы реже вызывать обновление состояния
24
+ // контекста родителя
25
+ if (isHovered !== prevIsHoveredRef.current) {
26
+ prevIsHoveredRef.current = isHovered;
27
+ setParentStateLock(isHovered);
28
+ }
29
+ }, [
30
+ setParentStateLock,
31
+ hasHover,
32
+ hovered,
33
+ lockState
34
+ ]);
15
35
  const onPointerEnter = (e)=>{
16
36
  if (e.pointerType === 'touch') {
17
37
  return;
18
38
  }
19
- setHover(true);
39
+ handleHover(true);
20
40
  };
21
41
  const onPointerLeave = ()=>{
22
- setHover(false);
42
+ handleHover(false);
23
43
  };
44
+ const isHovered = calculateStateValue({
45
+ hasState: hasHover,
46
+ isLocked: lockState,
47
+ stateValueControlled: Boolean(hovered),
48
+ stateValueLocal: hoveredStateLocal
49
+ });
24
50
  return {
25
- hover,
51
+ isHovered,
26
52
  onPointerEnter: hasHover ? onPointerEnter : noop,
27
53
  onPointerLeave: hasHover ? onPointerLeave : noop
28
54
  };
29
55
  }
30
56
  /**
31
57
  * Управляет активацией компонента
32
- */ function useActive({ activated, activeClassName, activeEffectDelay, hasActive = true, lockState }) {
33
- const [activatedState, setActivated] = useStateWithDelay(false);
58
+ */ function useActive({ activated, activeEffectDelay, hasActive = true, lockStateRef, setParentStateLock }) {
59
+ // передаём setParentStateLock, чтобы функция вызывалась вместе с установкой стейта,
60
+ // если установка отложена c помощью delay, то и вызов будет отложен
61
+ const [activatedState, setActivated] = useStateWithDelay(false, 0, setParentStateLock);
34
62
  // Список нажатий которые не требуется отменять
35
63
  const pointersUp = React.useMemo(()=>new Set(), []);
36
- const active = hasActive && !lockState && (activated || activatedState) ? activeClassName : undefined;
37
- const onPointerDown = ()=>setActivated(true, ACTIVE_DELAY);
64
+ const onPointerDown = ()=>{
65
+ if (lockStateRef.current) {
66
+ return;
67
+ }
68
+ setActivated(true, ACTIVE_DELAY);
69
+ // намеренно выставляем lock, так как setActivated вызов отложен
70
+ // а у отложенного setActivated setParentStateLock тоже вызовится отложенно
71
+ // родитель сейчас тоже обработает это же событие PointerDown
72
+ // если мы не залочим activatedState у родителя сейчас, то родитель выставит active состояние
73
+ setParentStateLock(true);
74
+ };
38
75
  const onPointerCancel = (e)=>{
39
76
  if (pointersUp.has(e.pointerId)) {
40
77
  pointersUp.delete(e.pointerId);
@@ -44,61 +81,97 @@ const ACTIVE_DELAY = 70;
44
81
  };
45
82
  const onPointerUp = (e)=>{
46
83
  pointersUp.add(e.pointerId);
84
+ if (lockStateRef.current) {
85
+ return;
86
+ }
47
87
  setActivated(true);
48
88
  setActivated(false, activeEffectDelay);
49
89
  };
90
+ const isActivated = calculateStateValue({
91
+ hasState: hasActive,
92
+ isLocked: lockStateRef.current,
93
+ stateValueControlled: Boolean(activated),
94
+ stateValueLocal: activatedState
95
+ });
50
96
  return {
51
- active,
97
+ isActivated,
52
98
  onPointerLeave: hasActive ? onPointerCancel : noop,
53
99
  onPointerDown: hasActive ? onPointerDown : noop,
54
100
  onPointerCancel: hasActive ? onPointerCancel : noop,
55
101
  onPointerUp: hasActive ? onPointerUp : noop
56
102
  };
57
103
  }
58
- export const ClickableLockStateContext = /*#__PURE__*/ React.createContext(undefined);
104
+ export const ClickableLockStateContext = /*#__PURE__*/ React.createContext({
105
+ lockHoverStateBubbling: undefined,
106
+ lockActiveStateBubbling: undefined
107
+ });
59
108
  /**
60
109
  * Блокирует стейт на всплытие
61
- */ function useLockState() {
62
- const setLockBubbling = React.useContext(ClickableLockStateContext) || noop;
110
+ */ function useLockState(setParentStateLockBubbling) {
63
111
  const [lockState, setLockState] = React.useState(false);
64
- const setLockBubblingImmediate = callMultiple(setLockState, setLockBubbling);
112
+ const setStateLockBubblingImmediate = React.useCallback((isLock)=>{
113
+ setLockState(isLock);
114
+ setParentStateLockBubbling(isLock);
115
+ }, [
116
+ setParentStateLockBubbling
117
+ ]);
65
118
  return [
66
119
  lockState,
67
- setLockBubbling,
68
- setLockBubblingImmediate
120
+ setParentStateLockBubbling,
121
+ setStateLockBubblingImmediate
122
+ ];
123
+ }
124
+ function useLockRef(setParentStateLockBubbling) {
125
+ const lockStateRef = React.useRef(false);
126
+ const setStateLockBubblingImmediate = React.useCallback((isLock)=>{
127
+ lockStateRef.current = isLock;
128
+ setParentStateLockBubbling(isLock);
129
+ }, [
130
+ setParentStateLockBubbling
131
+ ]);
132
+ return [
133
+ lockStateRef,
134
+ setParentStateLockBubbling,
135
+ setStateLockBubblingImmediate
69
136
  ];
70
137
  }
71
138
  /**
72
139
  * Управляет состоянием компонента
73
140
  */ export function useState(_param) {
74
- var { hasHover, hasActive } = _param, restProps = _object_without_properties(_param, [
141
+ var { hovered, hasHover, hasActive, unlockParentHover } = _param, restProps = _object_without_properties(_param, [
142
+ "hovered",
75
143
  "hasHover",
76
- "hasActive"
144
+ "hasActive",
145
+ "unlockParentHover"
77
146
  ]);
78
- const [lockState, setLockBubbling, setLockBubblingImmediate] = useLockState();
79
- const props = _object_spread({
147
+ const { lockHoverStateBubbling = noop, lockActiveStateBubbling = noop } = React.useContext(ClickableLockStateContext);
148
+ const [lockHoverState, setParentStateLockHoverBubbling, setLockHoverBubblingImmediate] = useLockState(unlockParentHover ? noop : lockHoverStateBubbling);
149
+ const [lockActiveStateRef, setParentStateLockActiveBubbling, setLockActiveBubblingImmediate] = useLockRef(lockActiveStateBubbling);
150
+ const _useHover = useHover({
80
151
  hasHover,
81
- hasActive,
82
- lockState
83
- }, restProps);
84
- const _useHover = useHover(_object_spread({}, props)), { hover } = _useHover, hoverEvent = _object_without_properties(_useHover, [
85
- "hover"
152
+ hovered,
153
+ lockState: lockHoverState,
154
+ setParentStateLock: setParentStateLockHoverBubbling
155
+ }), { isHovered } = _useHover, hoverEvent = _object_without_properties(_useHover, [
156
+ "isHovered"
86
157
  ]);
87
- const _useActive = useActive(props), { active } = _useActive, activeEvent = _object_without_properties(_useActive, [
88
- "active"
158
+ const _useActive = useActive(_object_spread_props(_object_spread({}, restProps), {
159
+ lockStateRef: lockActiveStateRef,
160
+ setParentStateLock: setParentStateLockActiveBubbling
161
+ })), { isActivated } = _useActive, activeEvent = _object_without_properties(_useActive, [
162
+ "isActivated"
89
163
  ]);
90
- const stateClassName = classNames(hover, active);
164
+ const stateClassName = classNames(isHovered && restProps.hoverClassName, isActivated && restProps.activeClassName);
91
165
  const handlers = mergeCalls(hoverEvent, activeEvent);
92
- React.useEffect(()=>{
93
- setLockBubbling(!!stateClassName);
94
- }, [
95
- setLockBubbling,
96
- stateClassName
97
- ]);
98
166
  return _object_spread({
99
167
  stateClassName,
100
- setLockBubblingImmediate
168
+ setLockHoverBubblingImmediate,
169
+ setLockActiveBubblingImmediate
101
170
  }, handlers);
102
171
  }
172
+ // Общая функция для определения конечного состояния active/hovered
173
+ function calculateStateValue({ hasState, isLocked, stateValueControlled, stateValueLocal }) {
174
+ return hasState && !isLocked && (stateValueControlled || stateValueLocal);
175
+ }
103
176
 
104
177
  //# sourceMappingURL=useState.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Clickable/useState.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { mergeCalls } from '../../lib/mergeCalls';\nimport { useStateWithDelay } from './useStateWithDelay';\n\nexport interface StateProps {\n /**\n * Указывает, должен ли компонент реагировать на hover-состояние\n */\n hasHover?: boolean;\n /**\n * Позволяет управлять hovered-состоянием извне\n */\n hovered?: boolean;\n /**\n * Позволяет управлять activated-состоянием извне\n */\n activated?: boolean;\n /**\n * Указывает, должен ли компонент реагировать на active-состояние\n */\n hasActive?: boolean;\n\n /**\n * Длительность показа `activated`-состояния\n */\n activeEffectDelay?: number;\n\n /**\n * Стиль подсветки active-состояния\n */\n activeClassName?: string;\n\n /**\n * Стиль подсветки hover-состояния\n */\n hoverClassName?: string;\n}\n\ninterface StateHookProps extends StateProps {\n /**\n * Блокирование активации состояний\n */\n lockState: boolean;\n}\n\nexport const DEFAULT_ACTIVE_EFFECT_DELAY = 600;\n\nconst ACTIVE_DELAY = 70;\n\n/**\n * Управляет наведением на компонент, игнорирует тач события\n */\nfunction useHover({ hovered, hoverClassName, hasHover = true, lockState }: StateHookProps) {\n const [hoveredState, setHover] = React.useState(false);\n\n const hover = hasHover && !lockState && (hovered || hoveredState) ? hoverClassName : undefined;\n\n const onPointerEnter: React.PointerEventHandler<any> = (e) => {\n if (e.pointerType === 'touch') {\n return;\n }\n\n setHover(true);\n };\n\n const onPointerLeave = () => {\n setHover(false);\n };\n\n return {\n hover,\n onPointerEnter: hasHover ? onPointerEnter : noop,\n onPointerLeave: hasHover ? onPointerLeave : noop,\n };\n}\n\n/**\n * Управляет активацией компонента\n */\nfunction useActive({\n activated,\n activeClassName,\n activeEffectDelay,\n hasActive = true,\n lockState,\n}: StateHookProps) {\n const [activatedState, setActivated] = useStateWithDelay(false);\n\n // Список нажатий которые не требуется отменять\n const pointersUp = React.useMemo(() => new Set<number>(), []);\n\n const active =\n hasActive && !lockState && (activated || activatedState) ? activeClassName : undefined;\n\n const onPointerDown = () => setActivated(true, ACTIVE_DELAY);\n const onPointerCancel: React.PointerEventHandler = (e) => {\n if (pointersUp.has(e.pointerId)) {\n pointersUp.delete(e.pointerId);\n return;\n }\n\n setActivated(false);\n };\n\n const onPointerUp: React.PointerEventHandler = (e) => {\n pointersUp.add(e.pointerId);\n setActivated(true);\n setActivated(false, activeEffectDelay);\n };\n\n return {\n active,\n onPointerLeave: hasActive ? onPointerCancel : noop,\n onPointerDown: hasActive ? onPointerDown : noop,\n onPointerCancel: hasActive ? onPointerCancel : noop,\n onPointerUp: hasActive ? onPointerUp : noop,\n };\n}\n\nexport const ClickableLockStateContext: React.Context<((v: boolean) => void) | undefined> =\n React.createContext<undefined | ((v: boolean) => void)>(undefined);\n\n/**\n * Блокирует стейт на всплытие\n */\nfunction useLockState(): readonly [boolean, (v: boolean) => void, (...args: any[]) => void] {\n const setLockBubbling = React.useContext(ClickableLockStateContext) || noop;\n const [lockState, setLockState] = React.useState(false);\n\n const setLockBubblingImmediate = callMultiple(setLockState, setLockBubbling);\n\n return [lockState, setLockBubbling, setLockBubblingImmediate] as const;\n}\n\n/**\n * Управляет состоянием компонента\n */\nexport function useState({ hasHover, hasActive, ...restProps }: StateProps): {\n stateClassName: string;\n setLockBubblingImmediate: (...args: any[]) => void;\n} {\n const [lockState, setLockBubbling, setLockBubblingImmediate] = useLockState();\n\n const props = {\n hasHover,\n hasActive,\n lockState,\n ...restProps,\n };\n\n const { hover, ...hoverEvent } = useHover({ ...props });\n const { active, ...activeEvent } = useActive(props);\n\n const stateClassName = classNames(hover, active);\n const handlers = mergeCalls(hoverEvent, activeEvent);\n\n React.useEffect(() => {\n setLockBubbling(!!stateClassName);\n }, [setLockBubbling, stateClassName]);\n\n return {\n stateClassName,\n setLockBubblingImmediate,\n ...handlers,\n };\n}\n"],"names":["React","classNames","noop","callMultiple","mergeCalls","useStateWithDelay","DEFAULT_ACTIVE_EFFECT_DELAY","ACTIVE_DELAY","useHover","hovered","hoverClassName","hasHover","lockState","hoveredState","setHover","useState","hover","undefined","onPointerEnter","e","pointerType","onPointerLeave","useActive","activated","activeClassName","activeEffectDelay","hasActive","activatedState","setActivated","pointersUp","useMemo","Set","active","onPointerDown","onPointerCancel","has","pointerId","delete","onPointerUp","add","ClickableLockStateContext","createContext","useLockState","setLockBubbling","useContext","setLockState","setLockBubblingImmediate","restProps","props","hoverEvent","activeEvent","stateClassName","handlers","useEffect"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/Clickable/useState.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { mergeCalls } from '../../lib/mergeCalls';\nimport { useStateWithDelay } from './useStateWithDelay';\n\nexport interface StateProps {\n /**\n * Указывает, должен ли компонент реагировать на hover-состояние\n */\n hasHover?: boolean;\n /**\n * Позволяет управлять hovered-состоянием извне\n */\n hovered?: boolean;\n /**\n * Позволяет управлять activated-состоянием извне\n */\n activated?: boolean;\n /**\n * Указывает, должен ли компонент реагировать на active-состояние\n */\n hasActive?: boolean;\n\n /**\n * Позволяет родительскому компоненту\n * иметь hovered-cостояние при наведении\n * на любой дочерний элемент.\n * По умолчанию состояние hovered у родителя сбрасывается.\n *\n * Присваивается родителькому компоненту.\n *\n * @example\n * <Tappable hasHoverWithChildren>\n * <IconButton />\n * <IconButton />\n * <IconButton />\n * </Tappable>\n */\n hasHoverWithChildren?: boolean;\n\n /**\n * Позволяет родительскому компоненту показывать hovered-состояние при наведении\n * на текущий дочерний компонент.\n *\n * Присваивается дочернему компоненту.\n *\n * @example\n * <Tappable>\n * <IconButton unlockParentHover />\n * <IconButton unlockParentHover />\n * <IconButton />\n * </Tappable>\n */\n unlockParentHover?: boolean;\n\n /**\n * Длительность показа `activated`-состояния\n */\n activeEffectDelay?: number;\n\n /**\n * Стиль подсветки active-состояния\n */\n activeClassName?: string;\n\n /**\n * Стиль подсветки hover-состояния\n */\n hoverClassName?: string;\n}\n\nexport const DEFAULT_ACTIVE_EFFECT_DELAY = 600;\n\nconst ACTIVE_DELAY = 70;\n\ninterface UseHoverProps extends Pick<StateProps, 'hovered' | 'hasHover'> {\n /**\n * Блокирование активации состояний\n */\n lockState: boolean;\n setParentStateLock: (v: boolean) => void;\n}\n\n/**\n * Управляет наведением на компонент, игнорирует тач события\n */\nfunction useHover({ hovered, hasHover = true, lockState, setParentStateLock }: UseHoverProps) {\n const [hoveredStateLocal, setHoveredStateLocal] = React.useState(false);\n\n const prevIsHoveredRef = React.useRef<boolean | undefined>(undefined);\n\n const handleHover = React.useCallback(\n (isHover: boolean) => {\n setHoveredStateLocal(isHover);\n\n const isHovered = calculateStateValue({\n hasState: hasHover,\n isLocked: lockState,\n stateValueControlled: Boolean(hovered),\n stateValueLocal: isHover,\n });\n\n // проверка сделана чтобы реже вызывать обновление состояния\n // контекста родителя\n if (isHovered !== prevIsHoveredRef.current) {\n prevIsHoveredRef.current = isHovered;\n setParentStateLock(isHovered);\n }\n },\n [setParentStateLock, hasHover, hovered, lockState],\n );\n\n const onPointerEnter: React.PointerEventHandler<any> = (e) => {\n if (e.pointerType === 'touch') {\n return;\n }\n\n handleHover(true);\n };\n\n const onPointerLeave = () => {\n handleHover(false);\n };\n\n const isHovered = calculateStateValue({\n hasState: hasHover,\n isLocked: lockState,\n stateValueControlled: Boolean(hovered),\n stateValueLocal: hoveredStateLocal,\n });\n\n return {\n isHovered,\n onPointerEnter: hasHover ? onPointerEnter : noop,\n onPointerLeave: hasHover ? onPointerLeave : noop,\n };\n}\n\ninterface UseActiveProps extends Pick<StateProps, 'activated' | 'activeEffectDelay' | 'hasActive'> {\n /**\n * Блокирование активации состояний\n */\n lockStateRef: React.MutableRefObject<boolean>;\n setParentStateLock: (v: boolean) => void;\n}\n\n/**\n * Управляет активацией компонента\n */\nfunction useActive({\n activated,\n activeEffectDelay,\n hasActive = true,\n lockStateRef,\n setParentStateLock,\n}: UseActiveProps) {\n // передаём setParentStateLock, чтобы функция вызывалась вместе с установкой стейта,\n // если установка отложена c помощью delay, то и вызов будет отложен\n const [activatedState, setActivated] = useStateWithDelay<boolean>(false, 0, setParentStateLock);\n\n // Список нажатий которые не требуется отменять\n const pointersUp = React.useMemo(() => new Set<number>(), []);\n\n const onPointerDown = () => {\n if (lockStateRef.current) {\n return;\n }\n\n setActivated(true, ACTIVE_DELAY);\n // намеренно выставляем lock, так как setActivated вызов отложен\n // а у отложенного setActivated setParentStateLock тоже вызовится отложенно\n // родитель сейчас тоже обработает это же событие PointerDown\n // если мы не залочим activatedState у родителя сейчас, то родитель выставит active состояние\n setParentStateLock(true);\n };\n\n const onPointerCancel: React.PointerEventHandler = (e) => {\n if (pointersUp.has(e.pointerId)) {\n pointersUp.delete(e.pointerId);\n return;\n }\n\n setActivated(false);\n };\n\n const onPointerUp: React.PointerEventHandler = (e) => {\n pointersUp.add(e.pointerId);\n\n if (lockStateRef.current) {\n return;\n }\n\n setActivated(true);\n setActivated(false, activeEffectDelay);\n };\n\n const isActivated = calculateStateValue({\n hasState: hasActive,\n isLocked: lockStateRef.current,\n stateValueControlled: Boolean(activated),\n stateValueLocal: activatedState,\n });\n\n return {\n isActivated,\n onPointerLeave: hasActive ? onPointerCancel : noop,\n onPointerDown: hasActive ? onPointerDown : noop,\n onPointerCancel: hasActive ? onPointerCancel : noop,\n onPointerUp: hasActive ? onPointerUp : noop,\n };\n}\n\ninterface ClickableLockStateContextInterface {\n lockHoverStateBubbling?: (v: boolean) => void;\n lockActiveStateBubbling?: (v: boolean) => void;\n}\n\nexport const ClickableLockStateContext: React.Context<ClickableLockStateContextInterface> =\n React.createContext<ClickableLockStateContextInterface>({\n lockHoverStateBubbling: undefined,\n lockActiveStateBubbling: undefined,\n });\n\n/**\n * Блокирует стейт на всплытие\n */\nfunction useLockState(\n setParentStateLockBubbling: (v: boolean) => void,\n): readonly [boolean, (v: boolean) => void, (...args: any[]) => void] {\n const [lockState, setLockState] = React.useState(false);\n\n const setStateLockBubblingImmediate = React.useCallback(\n (isLock: boolean) => {\n setLockState(isLock);\n setParentStateLockBubbling(isLock);\n },\n [setParentStateLockBubbling],\n );\n\n return [lockState, setParentStateLockBubbling, setStateLockBubblingImmediate] as const;\n}\n\nfunction useLockRef(\n setParentStateLockBubbling: (v: boolean) => void,\n): readonly [React.MutableRefObject<boolean>, (v: boolean) => void, (...args: any[]) => void] {\n const lockStateRef = React.useRef(false);\n\n const setStateLockBubblingImmediate = React.useCallback(\n (isLock: boolean) => {\n lockStateRef.current = isLock;\n setParentStateLockBubbling(isLock);\n },\n [setParentStateLockBubbling],\n );\n\n return [lockStateRef, setParentStateLockBubbling, setStateLockBubblingImmediate] as const;\n}\n\n/**\n * Управляет состоянием компонента\n */\nexport function useState({\n hovered,\n hasHover,\n hasActive,\n unlockParentHover,\n ...restProps\n}: StateProps): {\n stateClassName: string;\n setLockHoverBubblingImmediate: (...args: any[]) => void;\n setLockActiveBubblingImmediate: (...args: any[]) => void;\n} {\n const { lockHoverStateBubbling = noop, lockActiveStateBubbling = noop } =\n React.useContext(ClickableLockStateContext);\n\n const [lockHoverState, setParentStateLockHoverBubbling, setLockHoverBubblingImmediate] =\n useLockState(unlockParentHover ? noop : lockHoverStateBubbling);\n const [lockActiveStateRef, setParentStateLockActiveBubbling, setLockActiveBubblingImmediate] =\n useLockRef(lockActiveStateBubbling);\n\n const { isHovered, ...hoverEvent } = useHover({\n hasHover,\n hovered,\n lockState: lockHoverState,\n setParentStateLock: setParentStateLockHoverBubbling,\n });\n\n const { isActivated, ...activeEvent } = useActive({\n ...restProps,\n lockStateRef: lockActiveStateRef,\n setParentStateLock: setParentStateLockActiveBubbling,\n });\n\n const stateClassName = classNames(\n isHovered && restProps.hoverClassName,\n isActivated && restProps.activeClassName,\n );\n const handlers = mergeCalls(hoverEvent, activeEvent);\n\n return {\n stateClassName,\n setLockHoverBubblingImmediate,\n setLockActiveBubblingImmediate,\n ...handlers,\n };\n}\n\n// Общая функция для определения конечного состояния active/hovered\nfunction calculateStateValue({\n hasState,\n isLocked,\n stateValueControlled,\n stateValueLocal,\n}: {\n hasState: boolean;\n isLocked: boolean;\n stateValueControlled: boolean;\n stateValueLocal: boolean;\n}): boolean {\n return hasState && !isLocked && (stateValueControlled || stateValueLocal);\n}\n"],"names":["React","classNames","noop","mergeCalls","useStateWithDelay","DEFAULT_ACTIVE_EFFECT_DELAY","ACTIVE_DELAY","useHover","hovered","hasHover","lockState","setParentStateLock","hoveredStateLocal","setHoveredStateLocal","useState","prevIsHoveredRef","useRef","undefined","handleHover","useCallback","isHover","isHovered","calculateStateValue","hasState","isLocked","stateValueControlled","Boolean","stateValueLocal","current","onPointerEnter","e","pointerType","onPointerLeave","useActive","activated","activeEffectDelay","hasActive","lockStateRef","activatedState","setActivated","pointersUp","useMemo","Set","onPointerDown","onPointerCancel","has","pointerId","delete","onPointerUp","add","isActivated","ClickableLockStateContext","createContext","lockHoverStateBubbling","lockActiveStateBubbling","useLockState","setParentStateLockBubbling","setLockState","setStateLockBubblingImmediate","isLock","useLockRef","unlockParentHover","restProps","useContext","lockHoverState","setParentStateLockHoverBubbling","setLockHoverBubblingImmediate","lockActiveStateRef","setParentStateLockActiveBubbling","setLockActiveBubblingImmediate","hoverEvent","activeEvent","stateClassName","hoverClassName","activeClassName","handlers"],"mappings":"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"}
@@ -13,7 +13,25 @@ type DispatchWithDelay<S> = (value: S, delay?: number) => void;
13
13
  * setCount(count + 1, 500)
14
14
  * }
15
15
  * ```
16
+ *
17
+ * Есть возможность передать функцию-коллбэк, которая будет
18
+ * вызвана сразу после вызова setState с новым значением стейта
19
+ * в качестве аргумента.
20
+ *
21
+ * ```ts
22
+ * const onCountChange = React.useCallback((count) => {
23
+ * // обработчик нового значения count
24
+ * // будет вызван через 500мс
25
+ * }, []);
26
+ *
27
+ *
28
+ * const [count, setCount] = useStateWithDelay(initialState, 0, onCountChange);
29
+ *
30
+ * const click = () => {
31
+ * setCount(count + 1, 500)
32
+ * }
33
+ * ```
16
34
  */
17
- export declare function useStateWithDelay<S>(initialState: S | (() => S), defaultDelay?: number): [S, DispatchWithDelay<React.SetStateAction<S>>];
35
+ export declare function useStateWithDelay<S>(initialState: S | (() => S), defaultDelay?: number, onStateChange?: (v: S) => void): [S, DispatchWithDelay<React.SetStateAction<S>>];
18
36
  export {};
19
37
  //# sourceMappingURL=useStateWithDelay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useStateWithDelay.d.ts","sourceRoot":"","sources":["../../../src/components/Clickable/useStateWithDelay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,KAAK,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAE/D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,YAAY,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAC3B,YAAY,SAAI,GACf,CAAC,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAkBjD"}
1
+ {"version":3,"file":"useStateWithDelay.d.ts","sourceRoot":"","sources":["../../../src/components/Clickable/useStateWithDelay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,KAAK,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,YAAY,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAC3B,YAAY,SAAI,EAChB,aAAa,GAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAW,GACnC,CAAC,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAmCjD"}
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
+ import { isFunction, noop } from '@vkontakte/vkjs';
2
3
  /**
3
4
  * Возвращает значение с состоянием и функции на обновление состояния
4
5
  * без и с задержкой.
@@ -12,18 +13,51 @@ import * as React from 'react';
12
13
  * setCount(count + 1, 500)
13
14
  * }
14
15
  * ```
15
- */ export function useStateWithDelay(initialState, defaultDelay = 0) {
16
+ *
17
+ * Есть возможность передать функцию-коллбэк, которая будет
18
+ * вызвана сразу после вызова setState с новым значением стейта
19
+ * в качестве аргумента.
20
+ *
21
+ * ```ts
22
+ * const onCountChange = React.useCallback((count) => {
23
+ * // обработчик нового значения count
24
+ * // будет вызван через 500мс
25
+ * }, []);
26
+ *
27
+ *
28
+ * const [count, setCount] = useStateWithDelay(initialState, 0, onCountChange);
29
+ *
30
+ * const click = () => {
31
+ * setCount(count + 1, 500)
32
+ * }
33
+ * ```
34
+ */ export function useStateWithDelay(initialState, defaultDelay = 0, onStateChange = noop) {
16
35
  const [value, setValue] = React.useState(initialState);
17
36
  const timeout = React.useRef();
37
+ const handleSetValue = React.useCallback((nextValue)=>{
38
+ if (isFunction(nextValue)) {
39
+ setValue((prevValue)=>{
40
+ const value = nextValue(prevValue);
41
+ onStateChange(value);
42
+ return value;
43
+ });
44
+ } else {
45
+ setValue(nextValue);
46
+ onStateChange(nextValue);
47
+ }
48
+ }, [
49
+ onStateChange
50
+ ]);
18
51
  const setValueWithDelay = React.useCallback((newValue, delay = defaultDelay)=>{
19
52
  clearTimeout(timeout.current);
20
53
  if (delay === 0) {
21
- setValue(newValue);
54
+ handleSetValue(newValue);
22
55
  return;
23
56
  }
24
- timeout.current = setTimeout(()=>setValue(newValue), delay);
57
+ timeout.current = setTimeout(()=>handleSetValue(newValue), delay);
25
58
  }, [
26
- defaultDelay
59
+ defaultDelay,
60
+ handleSetValue
27
61
  ]);
28
62
  return [
29
63
  value,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Clickable/useStateWithDelay.tsx"],"sourcesContent":["import * as React from 'react';\n\ntype DispatchWithDelay<S> = (value: S, delay?: number) => void;\n\n/**\n * Возвращает значение с состоянием и функции на обновление состояния\n * без и с задержкой.\n *\n * # Пример\n *\n * ```ts\n * const [count, setCount] = useStateWithDelay(initialState);\n *\n * const click = () => {\n * setCount(count + 1, 500)\n * }\n * ```\n */\nexport function useStateWithDelay<S>(\n initialState: S | (() => S),\n defaultDelay = 0,\n): [S, DispatchWithDelay<React.SetStateAction<S>>] {\n const [value, setValue] = React.useState(initialState);\n const timeout = React.useRef<ReturnType<typeof setTimeout>>();\n\n const setValueWithDelay = React.useCallback(\n (newValue: React.SetStateAction<S>, delay: number = defaultDelay) => {\n clearTimeout(timeout.current);\n if (delay === 0) {\n setValue(newValue);\n return;\n }\n\n timeout.current = setTimeout(() => setValue(newValue), delay);\n },\n [defaultDelay],\n );\n\n return [value, setValueWithDelay];\n}\n"],"names":["React","useStateWithDelay","initialState","defaultDelay","value","setValue","useState","timeout","useRef","setValueWithDelay","useCallback","newValue","delay","clearTimeout","current","setTimeout"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAI/B;;;;;;;;;;;;;CAaC,GACD,OAAO,SAASC,kBACdC,YAA2B,EAC3BC,eAAe,CAAC;IAEhB,MAAM,CAACC,OAAOC,SAAS,GAAGL,MAAMM,QAAQ,CAACJ;IACzC,MAAMK,UAAUP,MAAMQ,MAAM;IAE5B,MAAMC,oBAAoBT,MAAMU,WAAW,CACzC,CAACC,UAAmCC,QAAgBT,YAAY;QAC9DU,aAAaN,QAAQO,OAAO;QAC5B,IAAIF,UAAU,GAAG;YACfP,SAASM;YACT;QACF;QAEAJ,QAAQO,OAAO,GAAGC,WAAW,IAAMV,SAASM,WAAWC;IACzD,GACA;QAACT;KAAa;IAGhB,OAAO;QAACC;QAAOK;KAAkB;AACnC"}
1
+ {"version":3,"sources":["../../../src/components/Clickable/useStateWithDelay.tsx"],"sourcesContent":["import * as React from 'react';\nimport { isFunction, noop } from '@vkontakte/vkjs';\n\ntype DispatchWithDelay<S> = (value: S, delay?: number) => void;\n\n/**\n * Возвращает значение с состоянием и функции на обновление состояния\n * без и с задержкой.\n *\n * # Пример\n *\n * ```ts\n * const [count, setCount] = useStateWithDelay(initialState);\n *\n * const click = () => {\n * setCount(count + 1, 500)\n * }\n * ```\n *\n * Есть возможность передать функцию-коллбэк, которая будет\n * вызвана сразу после вызова setState с новым значением стейта\n * в качестве аргумента.\n *\n * ```ts\n * const onCountChange = React.useCallback((count) => {\n * // обработчик нового значения count\n * // будет вызван через 500мс\n * }, []);\n *\n *\n * const [count, setCount] = useStateWithDelay(initialState, 0, onCountChange);\n *\n * const click = () => {\n * setCount(count + 1, 500)\n * }\n * ```\n */\nexport function useStateWithDelay<S>(\n initialState: S | (() => S),\n defaultDelay = 0,\n onStateChange: (v: S) => void = noop,\n): [S, DispatchWithDelay<React.SetStateAction<S>>] {\n const [value, setValue] = React.useState(initialState);\n const timeout = React.useRef<ReturnType<typeof setTimeout>>();\n\n const handleSetValue = React.useCallback(\n (nextValue: React.SetStateAction<S>) => {\n if (isFunction(nextValue)) {\n setValue((prevValue) => {\n const value = nextValue(prevValue);\n onStateChange(value);\n\n return value;\n });\n } else {\n setValue(nextValue);\n onStateChange(nextValue);\n }\n },\n [onStateChange],\n );\n\n const setValueWithDelay = React.useCallback(\n (newValue: React.SetStateAction<S>, delay: number = defaultDelay) => {\n clearTimeout(timeout.current);\n if (delay === 0) {\n handleSetValue(newValue);\n return;\n }\n\n timeout.current = setTimeout(() => handleSetValue(newValue), delay);\n },\n [defaultDelay, handleSetValue],\n );\n\n return [value, setValueWithDelay];\n}\n"],"names":["React","isFunction","noop","useStateWithDelay","initialState","defaultDelay","onStateChange","value","setValue","useState","timeout","useRef","handleSetValue","useCallback","nextValue","prevValue","setValueWithDelay","newValue","delay","clearTimeout","current","setTimeout"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,IAAI,QAAQ,kBAAkB;AAInD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BC,GACD,OAAO,SAASC,kBACdC,YAA2B,EAC3BC,eAAe,CAAC,EAChBC,gBAAgCJ,IAAI;IAEpC,MAAM,CAACK,OAAOC,SAAS,GAAGR,MAAMS,QAAQ,CAACL;IACzC,MAAMM,UAAUV,MAAMW,MAAM;IAE5B,MAAMC,iBAAiBZ,MAAMa,WAAW,CACtC,CAACC;QACC,IAAIb,WAAWa,YAAY;YACzBN,SAAS,CAACO;gBACR,MAAMR,QAAQO,UAAUC;gBACxBT,cAAcC;gBAEd,OAAOA;YACT;QACF,OAAO;YACLC,SAASM;YACTR,cAAcQ;QAChB;IACF,GACA;QAACR;KAAc;IAGjB,MAAMU,oBAAoBhB,MAAMa,WAAW,CACzC,CAACI,UAAmCC,QAAgBb,YAAY;QAC9Dc,aAAaT,QAAQU,OAAO;QAC5B,IAAIF,UAAU,GAAG;YACfN,eAAeK;YACf;QACF;QAEAP,QAAQU,OAAO,GAAGC,WAAW,IAAMT,eAAeK,WAAWC;IAC/D,GACA;QAACb;QAAcO;KAAe;IAGhC,OAAO;QAACL;QAAOS;KAAkB;AACnC"}
@@ -6,9 +6,10 @@ import type { FormFieldProps } from '../FormField/FormField';
6
6
  import type { NativeSelectProps } from '../NativeSelect/NativeSelect';
7
7
  import type { SelectType } from '../Select/Select';
8
8
  import { type CustomSelectClearButtonProps } from './CustomSelectClearButton';
9
+ import { type CustomSelectInputProps } from './CustomSelectInput';
9
10
  import type { CustomSelectOptionInterface, CustomSelectRenderOption } from './types';
10
11
  export type { CustomSelectClearButtonProps, CustomSelectOptionInterface, CustomSelectRenderOption };
11
- export interface SelectProps<OptionInterfaceT extends CustomSelectOptionInterface = CustomSelectOptionInterface> extends NativeSelectProps, Omit<FormFieldProps, 'maxHeight'>, TrackerOptionsProps, Pick<CustomSelectDropdownProps, 'overscrollBehavior' | 'autoHideScrollbar' | 'autoHideScrollbarDelay'> {
12
+ export interface SelectProps<OptionInterfaceT extends CustomSelectOptionInterface = CustomSelectOptionInterface> extends NativeSelectProps, Omit<FormFieldProps, 'maxHeight'>, TrackerOptionsProps, Pick<CustomSelectDropdownProps, 'overscrollBehavior' | 'autoHideScrollbar' | 'autoHideScrollbarDelay'>, Pick<CustomSelectInputProps, 'minLength' | 'maxLength' | 'pattern' | 'readOnly'> {
12
13
  /**
13
14
  * ref на внутрений компонент input
14
15
  */
@@ -25,7 +26,7 @@ export interface SelectProps<OptionInterfaceT extends CustomSelectOptionInterfac
25
26
  /**
26
27
  * Событие изменения текстового поля
27
28
  */
28
- onInputChange?: (e: React.ChangeEvent) => void;
29
+ onInputChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
29
30
  options: OptionInterfaceT[];
30
31
  /**
31
32
  * Функция для кастомной фильтрации. По умолчанию поиск производится по `option.label`.
@@ -1 +1 @@
1
- {"version":3,"file":"CustomSelect.d.ts","sourceRoot":"","sources":["../../../src/components/CustomSelect/CustomSelect.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CustomSelect.d.ts","sourceRoot":"","sources":["../../../src/components/CustomSelect/CustomSelect.tsx"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ import { CustomSelectInput } from './CustomSelectInput';
18
18
  import { calculateInputValueFromOptions, defaultRenderOptionFn, findIndexAfter, findIndexBefore, findSelectedIndex } from './helpers';
19
19
  const sizeYClassNames = {
20
20
  none: "vkuiCustomSelect--sizeY-none",
21
- ['compact']: "vkuiCustomSelect--sizeY-compact"
21
+ compact: "vkuiCustomSelect--sizeY-compact"
22
22
  };
23
23
  const warn = warnOnce('CustomSelect');
24
24
  const checkOptionsValueType = (options)=>{
@@ -36,7 +36,7 @@ const filter = (options, inputValue, filterFn)=>{
36
36
  * @see https://vkcom.github.io/VKUI/#/CustomSelect
37
37
  */ export function CustomSelect(props) {
38
38
  const [opened, setOpened] = React.useState(false);
39
- const { before, name, className, getRef, getRootRef, popupDirection = 'bottom', style, onChange, children, onInputChange: onInputChangeProp, renderDropdown, onOpen, onClose, fetching, forceDropdownPortal, selectType = 'default', autoHideScrollbar, autoHideScrollbarDelay, searchable = false, renderOption: renderOptionProp = defaultRenderOptionFn, options: optionsProp, emptyText = 'Ничего не найдено', filterFn = defaultFilterFn, icon: iconProp, ClearButton = CustomSelectClearButton, allowClearButton = false, dropdownOffsetDistance = 0, dropdownAutoWidth = false, noMaxHeight = false, ['aria-labelledby']: ariaLabelledBy, clearButtonTestId, nativeSelectTestId, defaultValue, required, getSelectInputRef, overscrollBehavior } = props, restProps = _object_without_properties(props, [
39
+ const { before, name, className, getRef, getRootRef, popupDirection = 'bottom', style, onChange, children, 'onInputChange': onInputChangeProp, renderDropdown, onOpen, onClose, fetching, forceDropdownPortal, selectType = 'default', autoHideScrollbar, autoHideScrollbarDelay, searchable = false, 'renderOption': renderOptionProp = defaultRenderOptionFn, 'options': optionsProp, emptyText = 'Ничего не найдено', filterFn = defaultFilterFn, 'icon': iconProp, ClearButton = CustomSelectClearButton, allowClearButton = false, dropdownOffsetDistance = 0, dropdownAutoWidth = false, noMaxHeight = false, 'aria-labelledby': ariaLabelledBy, clearButtonTestId, nativeSelectTestId, defaultValue, required, getSelectInputRef, overscrollBehavior } = props, restProps = _object_without_properties(props, [
40
40
  "before",
41
41
  "name",
42
42
  "className",
@@ -46,7 +46,7 @@ const filter = (options, inputValue, filterFn)=>{
46
46
  "style",
47
47
  "onChange",
48
48
  "children",
49
- "onInputChange",
49
+ 'onInputChange',
50
50
  "renderDropdown",
51
51
  "onOpen",
52
52
  "onClose",
@@ -56,11 +56,11 @@ const filter = (options, inputValue, filterFn)=>{
56
56
  "autoHideScrollbar",
57
57
  "autoHideScrollbarDelay",
58
58
  "searchable",
59
- "renderOption",
60
- "options",
59
+ 'renderOption',
60
+ 'options',
61
61
  "emptyText",
62
62
  "filterFn",
63
- "icon",
63
+ 'icon',
64
64
  "ClearButton",
65
65
  "allowClearButton",
66
66
  "dropdownOffsetDistance",
@@ -608,7 +608,7 @@ const filter = (options, inputValue, filterFn)=>{
608
608
  'role': 'combobox',
609
609
  'aria-controls': popupAriaId,
610
610
  'aria-expanded': opened,
611
- ['aria-activedescendant']: ariaActiveDescendantId && opened ? `${popupAriaId}-${ariaActiveDescendantId}` : undefined,
611
+ 'aria-activedescendant': ariaActiveDescendantId && opened ? `${popupAriaId}-${ariaActiveDescendantId}` : undefined,
612
612
  'aria-labelledby': ariaLabelledBy,
613
613
  'aria-haspopup': 'listbox',
614
614
  'aria-autocomplete': 'none'