@vkontakte/vkui 4.15.0 → 4.16.2

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 (349) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +391 -282
  4. package/.cache/ts/src/components/AppRoot/AppRoot.d.ts +1 -0
  5. package/.cache/ts/src/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  6. package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +2 -2
  7. package/.cache/ts/src/components/FixedLayout/FixedLayout.d.ts +4 -9
  8. package/.cache/ts/src/components/ModalPage/ModalPage.d.ts +1 -2
  9. package/.cache/ts/src/components/Root/Root.d.ts +5 -27
  10. package/.cache/ts/src/components/SimpleCheckbox/SimpleCheckbox.d.ts +9 -0
  11. package/.cache/ts/src/components/Tappable/Tappable.d.ts +12 -9
  12. package/.cache/ts/src/components/Touch/Touch.d.ts +1 -2
  13. package/.cache/ts/src/components/UsersStack/masks.d.ts +1 -1
  14. package/.cache/ts/src/hooks/useEventListener.d.ts +2 -2
  15. package/.cache/ts/src/hooks/useKeyboard.d.ts +11 -0
  16. package/.cache/ts/src/index.d.ts +1 -1
  17. package/.cache/ts/src/lib/select.d.ts +7 -0
  18. package/.cache/ts/src/lib/touch.d.ts +1 -1
  19. package/.cache/ts/src/lib/utils.d.ts +2 -3
  20. package/.cache/ts/src/types.d.ts +2 -6
  21. package/.cache/ts/src/unstable/index.d.ts +2 -0
  22. package/babel.cjs.config.js +7 -1
  23. package/babel.config.js +7 -1
  24. package/dist/cjs/components/AppRoot/AppRoot.d.ts +1 -0
  25. package/dist/cjs/components/AppRoot/AppRoot.js +29 -1
  26. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  27. package/dist/cjs/components/Banner/Banner.js +1 -1
  28. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  29. package/dist/cjs/components/Cell/Cell.js +3 -3
  30. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  31. package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  32. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +5 -6
  33. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  34. package/dist/cjs/components/ChipsSelect/useChipsSelect.js +2 -2
  35. package/dist/cjs/components/ChipsSelect/useChipsSelect.js.map +1 -1
  36. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +2 -2
  37. package/dist/cjs/components/CustomSelect/CustomSelect.js +3 -3
  38. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  39. package/dist/cjs/components/FixedLayout/FixedLayout.d.ts +4 -9
  40. package/dist/cjs/components/FixedLayout/FixedLayout.js +91 -179
  41. package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
  42. package/dist/cjs/components/Gallery/Gallery.js +2 -2
  43. package/dist/cjs/components/Gallery/Gallery.js.map +1 -1
  44. package/dist/cjs/components/Header/Header.js +1 -1
  45. package/dist/cjs/components/Header/Header.js.map +1 -1
  46. package/dist/cjs/components/ModalCardBase/ModalCardBase.js +6 -1
  47. package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
  48. package/dist/cjs/components/ModalPage/ModalPage.d.ts +1 -2
  49. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  50. package/dist/cjs/components/ModalRoot/ModalRoot.js +2 -2
  51. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  52. package/dist/cjs/components/Panel/Panel.js +2 -2
  53. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  54. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js +0 -1
  55. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  56. package/dist/cjs/components/PullToRefresh/PullToRefresh.js +2 -2
  57. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  58. package/dist/cjs/components/RangeSlider/UniversalSlider.js +2 -2
  59. package/dist/cjs/components/RangeSlider/UniversalSlider.js.map +1 -1
  60. package/dist/cjs/components/Root/Root.d.ts +5 -27
  61. package/dist/cjs/components/Root/Root.js +158 -214
  62. package/dist/cjs/components/Root/Root.js.map +1 -1
  63. package/dist/cjs/components/Search/Search.js +3 -3
  64. package/dist/cjs/components/Search/Search.js.map +1 -1
  65. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  66. package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.d.ts +9 -0
  67. package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.js +126 -0
  68. package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -0
  69. package/dist/cjs/components/Snackbar/Snackbar.js +2 -2
  70. package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
  71. package/dist/cjs/components/Tappable/Tappable.d.ts +12 -9
  72. package/dist/cjs/components/Tappable/Tappable.js +47 -36
  73. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  74. package/dist/cjs/components/Touch/Touch.d.ts +1 -2
  75. package/dist/cjs/components/Touch/Touch.js +172 -283
  76. package/dist/cjs/components/Touch/Touch.js.map +1 -1
  77. package/dist/cjs/components/UsersStack/UsersStack.js +9 -18
  78. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  79. package/dist/cjs/components/UsersStack/masks.d.ts +1 -1
  80. package/dist/cjs/components/UsersStack/masks.js +5 -8
  81. package/dist/cjs/components/UsersStack/masks.js.map +1 -1
  82. package/dist/cjs/components/View/View.js +2 -2
  83. package/dist/cjs/components/View/View.js.map +1 -1
  84. package/dist/cjs/components/View/ViewInfinite.js +2 -2
  85. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  86. package/dist/cjs/hooks/useEventListener.d.ts +2 -2
  87. package/dist/cjs/hooks/useEventListener.js +9 -4
  88. package/dist/cjs/hooks/useEventListener.js.map +1 -1
  89. package/dist/cjs/hooks/useGlobalEventListener.js +2 -4
  90. package/dist/cjs/hooks/useGlobalEventListener.js.map +1 -1
  91. package/dist/cjs/hooks/useInsets.js +3 -10
  92. package/dist/cjs/hooks/useInsets.js.map +1 -1
  93. package/dist/cjs/hooks/useKeyboard.d.ts +11 -0
  94. package/dist/cjs/hooks/useKeyboard.js +78 -0
  95. package/dist/cjs/hooks/useKeyboard.js.map +1 -0
  96. package/dist/cjs/hooks/useKeyboardInputTracker.js +4 -2
  97. package/dist/cjs/hooks/useKeyboardInputTracker.js.map +1 -1
  98. package/dist/cjs/index.d.ts +1 -1
  99. package/dist/cjs/index.js +2 -2
  100. package/dist/cjs/index.js.map +1 -1
  101. package/dist/cjs/lib/select.d.ts +7 -0
  102. package/dist/cjs/lib/select.js +73 -0
  103. package/dist/cjs/lib/select.js.map +1 -0
  104. package/dist/cjs/lib/touch.d.ts +1 -1
  105. package/dist/cjs/lib/touch.js +6 -2
  106. package/dist/cjs/lib/touch.js.map +1 -1
  107. package/dist/cjs/lib/utils.d.ts +2 -3
  108. package/dist/cjs/lib/utils.js.map +1 -1
  109. package/dist/cjs/types.d.ts +2 -6
  110. package/dist/cjs/unstable/index.d.ts +2 -0
  111. package/dist/cjs/unstable/index.js +8 -0
  112. package/dist/cjs/unstable/index.js.map +1 -1
  113. package/dist/components/AppRoot/AppRoot.d.ts +1 -0
  114. package/dist/components/AppRoot/AppRoot.js +29 -5
  115. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  116. package/dist/components/Banner/Banner.js +1 -1
  117. package/dist/components/Banner/Banner.js.map +1 -1
  118. package/dist/components/Cell/Cell.js +1 -1
  119. package/dist/components/Cell/Cell.js.map +1 -1
  120. package/dist/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  121. package/dist/components/ChipsSelect/ChipsSelect.js +4 -6
  122. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  123. package/dist/components/ChipsSelect/useChipsSelect.js +2 -2
  124. package/dist/components/ChipsSelect/useChipsSelect.js.map +1 -1
  125. package/dist/components/CustomSelect/CustomSelect.d.ts +2 -2
  126. package/dist/components/CustomSelect/CustomSelect.js +2 -3
  127. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  128. package/dist/components/FixedLayout/FixedLayout.d.ts +4 -9
  129. package/dist/components/FixedLayout/FixedLayout.js +84 -175
  130. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  131. package/dist/components/Gallery/Gallery.js +1 -1
  132. package/dist/components/Gallery/Gallery.js.map +1 -1
  133. package/dist/components/Header/Header.js +1 -1
  134. package/dist/components/Header/Header.js.map +1 -1
  135. package/dist/components/ModalCardBase/ModalCardBase.js +5 -1
  136. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  137. package/dist/components/ModalPage/ModalPage.d.ts +1 -2
  138. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  139. package/dist/components/ModalRoot/ModalRoot.js +1 -1
  140. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  141. package/dist/components/Panel/Panel.js +1 -1
  142. package/dist/components/Panel/Panel.js.map +1 -1
  143. package/dist/components/PanelHeaderContent/PanelHeaderContent.js +0 -1
  144. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  145. package/dist/components/PullToRefresh/PullToRefresh.js +1 -1
  146. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  147. package/dist/components/RangeSlider/UniversalSlider.js +1 -1
  148. package/dist/components/RangeSlider/UniversalSlider.js.map +1 -1
  149. package/dist/components/Root/Root.d.ts +5 -27
  150. package/dist/components/Root/Root.js +152 -207
  151. package/dist/components/Root/Root.js.map +1 -1
  152. package/dist/components/Search/Search.js +1 -1
  153. package/dist/components/Search/Search.js.map +1 -1
  154. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  155. package/dist/components/SimpleCheckbox/SimpleCheckbox.d.ts +9 -0
  156. package/dist/components/SimpleCheckbox/SimpleCheckbox.js +97 -0
  157. package/dist/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -0
  158. package/dist/components/Snackbar/Snackbar.js +1 -1
  159. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  160. package/dist/components/Tappable/Tappable.d.ts +12 -9
  161. package/dist/components/Tappable/Tappable.js +45 -37
  162. package/dist/components/Tappable/Tappable.js.map +1 -1
  163. package/dist/components/Touch/Touch.d.ts +1 -2
  164. package/dist/components/Touch/Touch.js +163 -286
  165. package/dist/components/Touch/Touch.js.map +1 -1
  166. package/dist/components/UsersStack/UsersStack.js +7 -16
  167. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  168. package/dist/components/UsersStack/masks.d.ts +1 -1
  169. package/dist/components/UsersStack/masks.js +6 -9
  170. package/dist/components/UsersStack/masks.js.map +1 -1
  171. package/dist/components/View/View.js +1 -1
  172. package/dist/components/View/View.js.map +1 -1
  173. package/dist/components/View/ViewInfinite.js +1 -1
  174. package/dist/components/View/ViewInfinite.js.map +1 -1
  175. package/dist/components.css +1 -1
  176. package/dist/components.css.map +1 -1
  177. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.css +1 -1
  178. package/dist/cssm/components/AppRoot/AppRoot.css +1 -0
  179. package/dist/cssm/components/AppRoot/AppRoot.js +30 -2
  180. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  181. package/dist/cssm/components/Banner/Banner.css +1 -1
  182. package/dist/cssm/components/Banner/Banner.js +1 -1
  183. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  184. package/dist/cssm/components/Cell/Cell.js +1 -1
  185. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  186. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +4 -6
  187. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  188. package/dist/cssm/components/ChipsSelect/useChipsSelect.js +2 -2
  189. package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +1 -1
  190. package/dist/cssm/components/CustomSelect/CustomSelect.js +2 -3
  191. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  192. package/dist/cssm/components/FixedLayout/FixedLayout.js +84 -175
  193. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  194. package/dist/cssm/components/Gallery/Gallery.js +1 -1
  195. package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
  196. package/dist/cssm/components/Header/Header.js +1 -1
  197. package/dist/cssm/components/Header/Header.js.map +1 -1
  198. package/dist/cssm/components/ModalCardBase/ModalCardBase.css +1 -1
  199. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +5 -1
  200. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  201. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  202. package/dist/cssm/components/ModalRoot/ModalRoot.css +1 -1
  203. package/dist/cssm/components/ModalRoot/ModalRoot.js +1 -1
  204. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  205. package/dist/cssm/components/Panel/Panel.js +1 -1
  206. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  207. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.css +1 -1
  208. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +0 -1
  209. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  210. package/dist/cssm/components/PullToRefresh/PullToRefresh.js +1 -1
  211. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  212. package/dist/cssm/components/RangeSlider/UniversalSlider.js +1 -1
  213. package/dist/cssm/components/RangeSlider/UniversalSlider.js.map +1 -1
  214. package/dist/cssm/components/Root/Root.js +152 -207
  215. package/dist/cssm/components/Root/Root.js.map +1 -1
  216. package/dist/cssm/components/Search/Search.js +1 -1
  217. package/dist/cssm/components/Search/Search.js.map +1 -1
  218. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  219. package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.css +1 -0
  220. package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.js +98 -0
  221. package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -0
  222. package/dist/cssm/components/Snackbar/Snackbar.js +1 -1
  223. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  224. package/dist/cssm/components/Tappable/Tappable.js +45 -37
  225. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  226. package/dist/cssm/components/Touch/Touch.js +163 -286
  227. package/dist/cssm/components/Touch/Touch.js.map +1 -1
  228. package/dist/cssm/components/UsersStack/UsersStack.css +1 -1
  229. package/dist/cssm/components/UsersStack/UsersStack.js +7 -16
  230. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  231. package/dist/cssm/components/UsersStack/masks.js +6 -9
  232. package/dist/cssm/components/UsersStack/masks.js.map +1 -1
  233. package/dist/cssm/components/View/View.js +1 -1
  234. package/dist/cssm/components/View/View.js.map +1 -1
  235. package/dist/cssm/components/View/ViewInfinite.js +1 -1
  236. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  237. package/dist/cssm/hooks/useEventListener.js +8 -4
  238. package/dist/cssm/hooks/useEventListener.js.map +1 -1
  239. package/dist/cssm/hooks/useGlobalEventListener.js +2 -2
  240. package/dist/cssm/hooks/useGlobalEventListener.js.map +1 -1
  241. package/dist/cssm/hooks/useInsets.js +2 -10
  242. package/dist/cssm/hooks/useInsets.js.map +1 -1
  243. package/dist/cssm/hooks/useKeyboard.js +62 -0
  244. package/dist/cssm/hooks/useKeyboard.js.map +1 -0
  245. package/dist/cssm/hooks/useKeyboardInputTracker.js +4 -2
  246. package/dist/cssm/hooks/useKeyboardInputTracker.js.map +1 -1
  247. package/dist/cssm/index.js +1 -1
  248. package/dist/cssm/index.js.map +1 -1
  249. package/dist/cssm/lib/select.js +62 -0
  250. package/dist/cssm/lib/select.js.map +1 -0
  251. package/dist/cssm/lib/touch.js +5 -2
  252. package/dist/cssm/lib/touch.js.map +1 -1
  253. package/dist/cssm/lib/utils.js.map +1 -1
  254. package/dist/cssm/styles/animations.css +1 -1
  255. package/dist/cssm/styles/common.css +1 -1
  256. package/dist/cssm/styles/components.css +1 -1
  257. package/dist/cssm/styles/constants.css +1 -1
  258. package/dist/cssm/styles/unstable.css +1 -1
  259. package/dist/cssm/unstable/index.js +1 -0
  260. package/dist/cssm/unstable/index.js.map +1 -1
  261. package/dist/hooks/useEventListener.d.ts +2 -2
  262. package/dist/hooks/useEventListener.js +8 -4
  263. package/dist/hooks/useEventListener.js.map +1 -1
  264. package/dist/hooks/useGlobalEventListener.js +2 -2
  265. package/dist/hooks/useGlobalEventListener.js.map +1 -1
  266. package/dist/hooks/useInsets.js +2 -10
  267. package/dist/hooks/useInsets.js.map +1 -1
  268. package/dist/hooks/useKeyboard.d.ts +11 -0
  269. package/dist/hooks/useKeyboard.js +62 -0
  270. package/dist/hooks/useKeyboard.js.map +1 -0
  271. package/dist/hooks/useKeyboardInputTracker.js +4 -2
  272. package/dist/hooks/useKeyboardInputTracker.js.map +1 -1
  273. package/dist/index.d.ts +1 -1
  274. package/dist/index.js +1 -1
  275. package/dist/index.js.map +1 -1
  276. package/dist/lib/select.d.ts +7 -0
  277. package/dist/lib/select.js +62 -0
  278. package/dist/lib/select.js.map +1 -0
  279. package/dist/lib/touch.d.ts +1 -1
  280. package/dist/lib/touch.js +5 -2
  281. package/dist/lib/touch.js.map +1 -1
  282. package/dist/lib/utils.d.ts +2 -3
  283. package/dist/lib/utils.js.map +1 -1
  284. package/dist/types.d.ts +2 -6
  285. package/dist/unstable/index.d.ts +2 -0
  286. package/dist/unstable/index.js +1 -0
  287. package/dist/unstable/index.js.map +1 -1
  288. package/dist/unstable.css +1 -1
  289. package/dist/unstable.css.map +1 -1
  290. package/dist/vkui.css +1 -1
  291. package/dist/vkui.css.map +1 -1
  292. package/package.json +4 -2
  293. package/postcss.config.js +1 -1
  294. package/src/components/ActionSheetItem/ActionSheetItem.css +4 -8
  295. package/src/components/AppRoot/AppRoot.css +20 -0
  296. package/src/components/AppRoot/AppRoot.tsx +30 -0
  297. package/src/components/Banner/Banner.css +4 -0
  298. package/src/components/Banner/Banner.tsx +1 -1
  299. package/src/components/Cell/Cell.tsx +1 -1
  300. package/src/components/ChipsSelect/ChipsSelect.tsx +4 -7
  301. package/src/components/ChipsSelect/Readme.md +0 -2
  302. package/src/components/ChipsSelect/useChipsSelect.ts +1 -1
  303. package/src/components/CustomSelect/CustomSelect.tsx +3 -2
  304. package/src/components/FixedLayout/FixedLayout.tsx +61 -147
  305. package/src/components/Gallery/Gallery.tsx +1 -1
  306. package/src/components/Header/Header.tsx +1 -1
  307. package/src/components/ModalCardBase/ModalCardBase.css +4 -0
  308. package/src/components/ModalCardBase/ModalCardBase.tsx +5 -1
  309. package/src/components/ModalPage/ModalPage.tsx +1 -2
  310. package/src/components/ModalRoot/ModalRoot.css +10 -0
  311. package/src/components/ModalRoot/ModalRoot.tsx +1 -1
  312. package/src/components/Panel/Panel.tsx +1 -1
  313. package/src/components/PanelHeaderContent/PanelHeaderContent.css +2 -1
  314. package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +2 -2
  315. package/src/components/PullToRefresh/PullToRefresh.tsx +1 -1
  316. package/src/components/RangeSlider/UniversalSlider.tsx +1 -1
  317. package/src/components/Root/Readme.md +27 -37
  318. package/src/components/Root/Root.tsx +112 -191
  319. package/src/components/Search/Search.tsx +1 -1
  320. package/src/components/Separator/Readme.md +3 -1
  321. package/src/components/SimpleCell/SimpleCell.tsx +1 -1
  322. package/src/components/SimpleCheckbox/Readme.md +17 -0
  323. package/src/components/SimpleCheckbox/SimpleCheckbox.css +115 -0
  324. package/src/components/SimpleCheckbox/SimpleCheckbox.tsx +105 -0
  325. package/src/components/Snackbar/Snackbar.tsx +1 -1
  326. package/src/components/Tappable/Tappable.tsx +28 -37
  327. package/src/components/Touch/Touch.tsx +100 -238
  328. package/src/components/UsersStack/UsersStack.css +5 -9
  329. package/src/components/UsersStack/UsersStack.tsx +4 -11
  330. package/src/components/UsersStack/masks.tsx +6 -9
  331. package/src/components/View/Readme.md +34 -42
  332. package/src/components/View/View.tsx +1 -1
  333. package/src/components/View/ViewInfinite.tsx +1 -1
  334. package/src/hooks/useEventListener.ts +11 -8
  335. package/src/hooks/useGlobalEventListener.ts +2 -2
  336. package/src/hooks/useInsets.ts +2 -8
  337. package/src/hooks/useKeyboard.ts +67 -0
  338. package/src/hooks/useKeyboardInputTracker.ts +4 -2
  339. package/src/index.ts +1 -1
  340. package/src/lib/select.ts +53 -0
  341. package/src/lib/touch.ts +2 -2
  342. package/src/lib/utils.ts +3 -4
  343. package/src/styles/animations.css +0 -14
  344. package/src/styles/common.css +0 -21
  345. package/src/styles/components.css +2 -0
  346. package/src/styles/constants.css +3 -0
  347. package/src/styles/unstable.css +1 -0
  348. package/src/types.ts +2 -8
  349. package/src/unstable/index.ts +3 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AASA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAMA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAMA;;AAEA;;AACA;;AACA;;AAEA;;AAEA;;AAEA;;AAMA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAMA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAMA;;AAEA;;AAEA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AAEA;;AAMA;;AACA;;AACA;;AAEA;;AAUA;;AAMA;;AAEA;;AAEA;;AAEA;;AAEA;;AAMA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["import './lib/polyfills';\n\nimport './styles/constants.css';\nimport './styles/animations.css';\nimport './styles/common.css';\n\n/**\n * Layout\n */\nexport { default as Root } from './components/Root/Root';\nexport type { RootProps } from './components/Root/Root';\nexport { default as View } from './components/View/View';\nexport type { ViewProps } from './components/View/View';\nexport { Panel } from './components/Panel/Panel';\nexport type { PanelProps } from './components/Panel/Panel';\nexport { PanelHeaderButton } from './components/PanelHeaderButton/PanelHeaderButton';\nexport type { PanelHeaderButtonProps } from './components/PanelHeaderButton/PanelHeaderButton';\nexport { default as PanelHeader } from './components/PanelHeader/PanelHeader';\nexport type { PanelHeaderProps } from './components/PanelHeader/PanelHeader';\nexport { default as PanelHeaderContent } from './components/PanelHeaderContent/PanelHeaderContent';\nexport type { PanelHeaderContentProps } from './components/PanelHeaderContent/PanelHeaderContent';\nexport { PanelHeaderContext } from './components/PanelHeaderContext/PanelHeaderContext';\nexport type { PanelHeaderContextProps } from './components/PanelHeaderContext/PanelHeaderContext';\nexport { SplitLayout } from './components/SplitLayout/SplitLayout';\nexport type { SplitLayoutProps } from './components/SplitLayout/SplitLayout';\nexport { SplitCol } from './components/SplitCol/SplitCol';\nexport type { SplitColProps } from './components/SplitCol/SplitCol';\nexport { default as Epic } from './components/Epic/Epic';\nexport type { EpicProps } from './components/Epic/Epic';\nexport { default as Tabbar } from './components/Tabbar/Tabbar';\nexport type { TabbarProps } from './components/Tabbar/Tabbar';\nexport { default as TabbarItem } from './components/TabbarItem/TabbarItem';\nexport type { TabbarItemProps } from './components/TabbarItem/TabbarItem';\nexport { default as HorizontalScroll } from './components/HorizontalScroll/HorizontalScroll';\nexport type { HorizontalScrollProps } from './components/HorizontalScroll/HorizontalScroll';\nexport { default as FixedLayout } from './components/FixedLayout/FixedLayout';\nexport type { FixedLayoutProps } from './components/FixedLayout/FixedLayout';\n\n/**\n * Popouts\n */\nexport { PopoutWrapper } from './components/PopoutWrapper/PopoutWrapper';\nexport type { PopoutWrapperProps } from './components/PopoutWrapper/PopoutWrapper';\nexport { default as Alert } from './components/Alert/Alert';\nexport type { AlertProps, AlertActionInterface } from './components/Alert/Alert';\nexport { ActionSheet } from './components/ActionSheet/ActionSheet';\nexport type { ActionSheetProps } from './components/ActionSheet/ActionSheet';\nexport { default as ActionSheetItem } from './components/ActionSheetItem/ActionSheetItem';\nexport type { ActionSheetItemProps } from './components/ActionSheetItem/ActionSheetItem';\nexport { default as ScreenSpinner } from './components/ScreenSpinner/ScreenSpinner';\nexport type { ScreenSpinnerProps } from './components/ScreenSpinner/ScreenSpinner';\nexport { Snackbar } from './components/Snackbar/Snackbar';\nexport type { SnackbarProps } from './components/Snackbar/Snackbar';\n\n/**\n * Modals\n */\nexport { ModalRoot } from './components/ModalRoot/ModalRootAdaptive';\nexport type { ModalRootProps } from './components/ModalRoot/ModalRootAdaptive';\nexport { withModalRootContext } from './components/ModalRoot/withModalRootContext';\nexport { default as ModalRootContext } from './components/ModalRoot/ModalRootContext';\nexport { default as ModalPage } from './components/ModalPage/ModalPage';\nexport type { ModalPageProps } from './components/ModalPage/ModalPage';\nexport { default as ModalPageHeader } from './components/ModalPageHeader/ModalPageHeader';\nexport type { ModalPageHeaderProps } from './components/ModalPageHeader/ModalPageHeader';\nexport { default as ModalCard } from './components/ModalCard/ModalCard';\nexport type { ModalCardProps } from './components/ModalCard/ModalCard';\nexport { default as ModalDismissButton } from './components/ModalDismissButton/ModalDismissButton';\nexport type { ModalDismissButtonProps } from './components/ModalDismissButton/ModalDismissButton';\n\n/**\n * Blocks\n */\nexport { Badge } from './components/Badge/Badge';\nexport type { BadgeProps } from './components/Badge/Badge';\nexport { default as Button } from './components/Button/Button';\nexport type { ButtonProps } from './components/Button/Button';\nexport { default as IconButton } from './components/IconButton/IconButton';\nexport type { IconButtonProps } from './components/IconButton/IconButton';\nexport { default as Card } from './components/Card/Card';\nexport type { CardProps } from './components/Card/Card';\nexport { default as CardGrid } from './components/CardGrid/CardGrid';\nexport type { CardGridProps } from './components/CardGrid/CardGrid';\nexport { default as CardScroll } from './components/CardScroll/CardScroll';\nexport type { CardScrollProps } from './components/CardScroll/CardScroll';\nexport { default as ContentCard } from './components/ContentCard/ContentCard';\nexport type { ContentCardProps } from './components/ContentCard/ContentCard';\nexport { CellButton } from './components/CellButton/CellButton';\nexport type { CellButtonProps } from './components/CellButton/CellButton';\nexport { default as Header } from './components/Header/Header';\nexport type { HeaderProps } from './components/Header/Header';\nexport { default as Group } from './components/Group/Group';\nexport type { GroupProps } from './components/Group/Group';\nexport { default as Gradient } from './components/Gradient/Gradient';\nexport type { GradientProps } from './components/Gradient/Gradient';\nexport { default as List } from './components/List/List';\nexport { Cell } from './components/Cell/Cell';\nexport type { CellProps } from './components/Cell/Cell';\nexport { default as RichCell } from './components/RichCell/RichCell';\nexport type { RichCellProps } from './components/RichCell/RichCell';\nexport { default as SimpleCell } from './components/SimpleCell/SimpleCell';\nexport type { SimpleCellProps } from './components/SimpleCell/SimpleCell';\nexport { HorizontalCell } from './components/HorizontalCell/HorizontalCell';\nexport type { HorizontalCellProps } from './components/HorizontalCell/HorizontalCell';\nexport { default as Footer } from './components/Footer/Footer';\nexport { default as InfoRow } from './components/InfoRow/InfoRow';\nexport type { InfoRowProps } from './components/InfoRow/InfoRow';\nexport { default as Gallery } from './components/Gallery/Gallery';\nexport type { GalleryProps } from './components/Gallery/Gallery';\nexport { default as Avatar } from './components/Avatar/Avatar';\nexport type { AvatarProps } from './components/Avatar/Avatar';\nexport { default as Progress } from './components/Progress/Progress';\nexport type { ProgressProps } from './components/Progress/Progress';\nexport { default as Search } from './components/Search/Search';\nexport type { SearchProps } from './components/Search/Search';\nexport { default as Tabs } from './components/Tabs/Tabs';\nexport type { TabsProps } from './components/Tabs/Tabs';\nexport { default as TabsItem } from './components/TabsItem/TabsItem';\nexport type { TabsItemProps } from './components/TabsItem/TabsItem';\nexport { default as Spinner } from './components/Spinner/Spinner';\nexport type { SpinnerProps } from './components/Spinner/Spinner';\nexport { default as PullToRefresh } from './components/PullToRefresh/PullToRefresh';\nexport type { PullToRefreshProps } from './components/PullToRefresh/PullToRefresh';\nexport { default as Link } from './components/Link/Link';\nexport type { LinkProps } from './components/Link/Link';\nexport { default as Tooltip } from './components/Tooltip/Tooltip';\nexport type { TooltipProps } from './components/Tooltip/Tooltip';\nexport { TooltipContainer } from './components/Tooltip/TooltipContainer';\nexport { default as Counter } from './components/Counter/Counter';\nexport type { CounterProps } from './components/Counter/Counter';\nexport { default as UsersStack } from './components/UsersStack/UsersStack';\nexport type { UsersStackProps } from './components/UsersStack/UsersStack';\nexport { default as Separator } from './components/Separator/Separator';\nexport type { SeparatorProps } from './components/Separator/Separator';\nexport { Spacing } from './components/Spacing/Spacing';\nexport type { SpacingProps } from './components/Spacing/Spacing';\nexport { default as Placeholder } from './components/Placeholder/Placeholder';\nexport type { PlaceholderProps } from './components/Placeholder/Placeholder';\nexport { default as Banner } from './components/Banner/Banner';\nexport type { BannerProps } from './components/Banner/Banner';\nexport { MiniInfoCell } from './components/MiniInfoCell/MiniInfoCell';\nexport type { MiniInfoCellProps } from './components/MiniInfoCell/MiniInfoCell';\nexport { WriteBar } from './components/WriteBar/WriteBar';\nexport type { WriteBarProps } from './components/WriteBar/WriteBar';\nexport { WriteBarIcon } from './components/WriteBarIcon/WriteBarIcon';\nexport type { WriteBarIconProps } from './components/WriteBarIcon/WriteBarIcon';\nexport { SubnavigationBar } from './components/SubnavigationBar/SubnavigationBar';\nexport type { SubnavigationBarProps } from './components/SubnavigationBar/SubnavigationBar';\nexport { SubnavigationButton } from './components/SubnavigationButton/SubnavigationButton';\nexport type { SubnavigationButtonProps } from './components/SubnavigationButton/SubnavigationButton';\n\n/**\n * Forms\n */\nexport { default as FormLayout } from './components/FormLayout/FormLayout';\nexport type { FormLayoutProps } from './components/FormLayout/FormLayout';\nexport { FormItem } from './components/FormItem/FormItem';\nexport type { FormItemProps } from './components/FormItem/FormItem';\nexport { FormField } from './components/FormField/FormField';\nexport type { FormFieldProps } from './components/FormField/FormField';\nexport { default as FormLayoutGroup } from './components/FormLayoutGroup/FormLayoutGroup';\nexport type { FormLayoutGroupProps } from './components/FormLayoutGroup/FormLayoutGroup';\nexport { FormStatus } from './components/FormStatus/FormStatus';\nexport type { FormStatusProps } from './components/FormStatus/FormStatus';\nexport { Switch } from './components/Switch/Switch';\nexport type { SwitchProps } from './components/Switch/Switch';\nexport { default as File } from './components/File/File';\nexport type { FileProps } from './components/File/File';\nexport { default as Input } from './components/Input/Input';\nexport type { InputProps } from './components/Input/Input';\nexport { default as Chip } from './components/Chip/Chip';\nexport type { ChipProps } from './components/Chip/Chip';\nexport { default as ChipsInput } from './components/ChipsInput/ChipsInput';\nexport type { ChipsInputProps } from './components/ChipsInput/ChipsInput';\nexport { default as Slider } from './components/Slider/Slider';\nexport type { SliderProps } from './components/Slider/Slider';\nexport { default as RangeSlider } from './components/RangeSlider/RangeSlider';\nexport type { RangeSliderProps } from './components/RangeSlider/RangeSlider';\nexport { default as Textarea } from './components/Textarea/Textarea';\nexport type { TextareaProps } from './components/Textarea/Textarea';\nexport { default as Radio } from './components/Radio/Radio';\nexport type { RadioProps } from './components/Radio/Radio';\nexport { default as Checkbox } from './components/Checkbox/Checkbox';\nexport type { CheckboxProps } from './components/Checkbox/Checkbox';\nexport { default as Select } from './components/Select/Select';\nexport type { SelectProps } from './components/Select/Select';\nexport { default as SelectMimicry } from './components/SelectMimicry/SelectMimicry';\nexport type { SelectMimicryProps } from './components/SelectMimicry/SelectMimicry';\nexport { default as NativeSelect } from './components/NativeSelect/NativeSelect';\nexport type { NativeSelectProps } from './components/NativeSelect/NativeSelect';\nexport { default as CustomSelect } from './components/CustomSelect/CustomSelect';\nexport type { CustomSelectProps, CustomSelectOptionInterface } from './components/CustomSelect/CustomSelect';\nexport { default as CustomSelectOption } from './components/CustomSelectOption/CustomSelectOption';\nexport type { CustomSelectOptionProps } from './components/CustomSelectOption/CustomSelectOption';\nexport { default as DatePicker } from './components/DatePicker/DatePicker';\nexport type { DatePickerProps, DatePickerDateFormat } from './components/DatePicker/DatePicker';\nexport { default as SliderSwitch } from './components/SliderSwitch/SliderSwitch';\nexport type { SliderSwitchProps, SliderSwitchOptionInterface } from './components/SliderSwitch/SliderSwitch';\n\n/**\n * Helpers\n */\nexport { default as Div } from './components/Div/Div';\nexport type { DivProps } from './components/Div/Div';\nexport { default as Tappable } from './components/Tappable/Tappable';\nexport type { TappableProps } from './components/Tappable/Tappable';\nexport { default as Touch } from './components/Touch/Touch';\nexport type { TouchProps } from './components/Touch/Touch';\nexport { default as PanelSpinner } from './components/PanelSpinner/PanelSpinner';\nexport type { PanelSpinnerProps } from './components/PanelSpinner/PanelSpinner';\nexport { default as PanelHeaderClose } from './components/PanelHeaderClose/PanelHeaderClose';\nexport { default as PanelHeaderBack } from './components/PanelHeaderBack/PanelHeaderBack';\nexport { default as PanelHeaderSubmit } from './components/PanelHeaderSubmit/PanelHeaderSubmit';\nexport { default as PanelHeaderEdit } from './components/PanelHeaderEdit/PanelHeaderEdit';\nexport type { PanelHeaderEditProps } from './components/PanelHeaderEdit/PanelHeaderEdit';\nexport { ModalCardBase } from './components/ModalCardBase/ModalCardBase';\nexport type { ModalCardBaseProps } from './components/ModalCardBase/ModalCardBase';\n\n/**\n * Wrappers\n */\nexport { AppRoot } from './components/AppRoot/AppRoot';\nexport { default as AdaptivityProvider } from './components/AdaptivityProvider/AdaptivityProvider';\nexport { default as ConfigProvider } from './components/ConfigProvider/ConfigProvider';\nexport type { ConfigProviderProps } from './components/ConfigProvider/ConfigProvider';\nexport {\n ConfigProviderContext,\n Appearance,\n Scheme,\n WebviewType,\n} from './components/ConfigProvider/ConfigProviderContext';\n\n/**\n * Advertisement\n */\nexport { default as PromoBanner } from './components/PromoBanner/PromoBanner';\nexport type { PromoBannerProps } from './components/PromoBanner/PromoBanner';\n\n/**\n * Typography\n */\nexport { default as Title } from './components/Typography/Title/Title';\nexport type { TitleProps } from './components/Typography/Title/Title';\nexport { default as Headline } from './components/Typography/Headline/Headline';\nexport type { HeadlineProps } from './components/Typography/Headline/Headline';\nexport { default as Text } from './components/Typography/Text/Text';\nexport type { TextProps } from './components/Typography/Text/Text';\nexport { default as Caption } from './components/Typography/Caption/Caption';\nexport type { CaptionProps } from './components/Typography/Caption/Caption';\nexport { default as Subhead } from './components/Typography/Subhead/Subhead';\nexport type { SubheadProps } from './components/Typography/Subhead/Subhead';\n\n/**\n * HOCs\n */\nexport { withInsets } from './hoc/withInsets';\nexport { withPlatform } from './hoc/withPlatform';\nexport { withAdaptivity } from './hoc/withAdaptivity';\n\n/**\n * Hooks\n */\nexport { useInsets } from './hooks/useInsets';\nexport { usePlatform } from './hooks/usePlatform';\nexport { useAdaptivity } from './hooks/useAdaptivity';\nexport { useAppearance } from './hooks/useAppearance';\n\n/**\n * Utils\n */\nexport { classNamesString as classNames } from './lib/classNames';\nexport { default as animate } from './lib/animate';\nexport { removeObjectKeys } from './lib/removeObjectKeys';\nexport { SSRWrapper } from './lib/SSR';\nexport { platform, ANDROID, IOS, VKCOM, Platform, IS_PLATFORM_ANDROID, IS_PLATFORM_IOS } from './lib/platform';\nexport { getClassName } from './helpers/getClassName';\nexport { ViewWidth, ViewHeight, SizeType } from './components/AdaptivityProvider/AdaptivityContext';\n\n/**\n * Types\n */\nexport type { AlignType, HasPlatform, HasInsets } from './types';\nexport type { NavIdProps } from './lib/getNavId';\nexport type { PlatformType } from './lib/platform';\nexport type { AdaptivityProps } from './hoc/withAdaptivity';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AASA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAMA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAMA;;AAEA;;AACA;;AACA;;AAEA;;AAEA;;AAEA;;AAMA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAMA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAMA;;AAEA;;AAEA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AAEA;;AAMA;;AACA;;AACA;;AAEA;;AAUA;;AAMA;;AAEA;;AAEA;;AAEA;;AAEA;;AAMA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["import './lib/polyfills';\n\nimport './styles/constants.css';\nimport './styles/animations.css';\nimport './styles/common.css';\n\n/**\n * Layout\n */\nexport { default as Root } from './components/Root/Root';\nexport type { RootProps } from './components/Root/Root';\nexport { default as View } from './components/View/View';\nexport type { ViewProps } from './components/View/View';\nexport { Panel } from './components/Panel/Panel';\nexport type { PanelProps } from './components/Panel/Panel';\nexport { PanelHeaderButton } from './components/PanelHeaderButton/PanelHeaderButton';\nexport type { PanelHeaderButtonProps } from './components/PanelHeaderButton/PanelHeaderButton';\nexport { default as PanelHeader } from './components/PanelHeader/PanelHeader';\nexport type { PanelHeaderProps } from './components/PanelHeader/PanelHeader';\nexport { default as PanelHeaderContent } from './components/PanelHeaderContent/PanelHeaderContent';\nexport type { PanelHeaderContentProps } from './components/PanelHeaderContent/PanelHeaderContent';\nexport { PanelHeaderContext } from './components/PanelHeaderContext/PanelHeaderContext';\nexport type { PanelHeaderContextProps } from './components/PanelHeaderContext/PanelHeaderContext';\nexport { SplitLayout } from './components/SplitLayout/SplitLayout';\nexport type { SplitLayoutProps } from './components/SplitLayout/SplitLayout';\nexport { SplitCol } from './components/SplitCol/SplitCol';\nexport type { SplitColProps } from './components/SplitCol/SplitCol';\nexport { default as Epic } from './components/Epic/Epic';\nexport type { EpicProps } from './components/Epic/Epic';\nexport { default as Tabbar } from './components/Tabbar/Tabbar';\nexport type { TabbarProps } from './components/Tabbar/Tabbar';\nexport { default as TabbarItem } from './components/TabbarItem/TabbarItem';\nexport type { TabbarItemProps } from './components/TabbarItem/TabbarItem';\nexport { default as HorizontalScroll } from './components/HorizontalScroll/HorizontalScroll';\nexport type { HorizontalScrollProps } from './components/HorizontalScroll/HorizontalScroll';\nexport { default as FixedLayout } from './components/FixedLayout/FixedLayout';\nexport type { FixedLayoutProps } from './components/FixedLayout/FixedLayout';\n\n/**\n * Popouts\n */\nexport { PopoutWrapper } from './components/PopoutWrapper/PopoutWrapper';\nexport type { PopoutWrapperProps } from './components/PopoutWrapper/PopoutWrapper';\nexport { default as Alert } from './components/Alert/Alert';\nexport type { AlertProps, AlertActionInterface } from './components/Alert/Alert';\nexport { ActionSheet } from './components/ActionSheet/ActionSheet';\nexport type { ActionSheetProps } from './components/ActionSheet/ActionSheet';\nexport { default as ActionSheetItem } from './components/ActionSheetItem/ActionSheetItem';\nexport type { ActionSheetItemProps } from './components/ActionSheetItem/ActionSheetItem';\nexport { default as ScreenSpinner } from './components/ScreenSpinner/ScreenSpinner';\nexport type { ScreenSpinnerProps } from './components/ScreenSpinner/ScreenSpinner';\nexport { Snackbar } from './components/Snackbar/Snackbar';\nexport type { SnackbarProps } from './components/Snackbar/Snackbar';\n\n/**\n * Modals\n */\nexport { ModalRoot } from './components/ModalRoot/ModalRootAdaptive';\nexport type { ModalRootProps } from './components/ModalRoot/ModalRootAdaptive';\nexport { withModalRootContext } from './components/ModalRoot/withModalRootContext';\nexport { default as ModalRootContext } from './components/ModalRoot/ModalRootContext';\nexport { default as ModalPage } from './components/ModalPage/ModalPage';\nexport type { ModalPageProps } from './components/ModalPage/ModalPage';\nexport { default as ModalPageHeader } from './components/ModalPageHeader/ModalPageHeader';\nexport type { ModalPageHeaderProps } from './components/ModalPageHeader/ModalPageHeader';\nexport { default as ModalCard } from './components/ModalCard/ModalCard';\nexport type { ModalCardProps } from './components/ModalCard/ModalCard';\nexport { default as ModalDismissButton } from './components/ModalDismissButton/ModalDismissButton';\nexport type { ModalDismissButtonProps } from './components/ModalDismissButton/ModalDismissButton';\n\n/**\n * Blocks\n */\nexport { Badge } from './components/Badge/Badge';\nexport type { BadgeProps } from './components/Badge/Badge';\nexport { default as Button } from './components/Button/Button';\nexport type { ButtonProps } from './components/Button/Button';\nexport { default as IconButton } from './components/IconButton/IconButton';\nexport type { IconButtonProps } from './components/IconButton/IconButton';\nexport { default as Card } from './components/Card/Card';\nexport type { CardProps } from './components/Card/Card';\nexport { default as CardGrid } from './components/CardGrid/CardGrid';\nexport type { CardGridProps } from './components/CardGrid/CardGrid';\nexport { default as CardScroll } from './components/CardScroll/CardScroll';\nexport type { CardScrollProps } from './components/CardScroll/CardScroll';\nexport { default as ContentCard } from './components/ContentCard/ContentCard';\nexport type { ContentCardProps } from './components/ContentCard/ContentCard';\nexport { CellButton } from './components/CellButton/CellButton';\nexport type { CellButtonProps } from './components/CellButton/CellButton';\nexport { default as Header } from './components/Header/Header';\nexport type { HeaderProps } from './components/Header/Header';\nexport { default as Group } from './components/Group/Group';\nexport type { GroupProps } from './components/Group/Group';\nexport { default as Gradient } from './components/Gradient/Gradient';\nexport type { GradientProps } from './components/Gradient/Gradient';\nexport { default as List } from './components/List/List';\nexport { Cell } from './components/Cell/Cell';\nexport type { CellProps } from './components/Cell/Cell';\nexport { default as RichCell } from './components/RichCell/RichCell';\nexport type { RichCellProps } from './components/RichCell/RichCell';\nexport { default as SimpleCell } from './components/SimpleCell/SimpleCell';\nexport type { SimpleCellProps } from './components/SimpleCell/SimpleCell';\nexport { HorizontalCell } from './components/HorizontalCell/HorizontalCell';\nexport type { HorizontalCellProps } from './components/HorizontalCell/HorizontalCell';\nexport { default as Footer } from './components/Footer/Footer';\nexport { default as InfoRow } from './components/InfoRow/InfoRow';\nexport type { InfoRowProps } from './components/InfoRow/InfoRow';\nexport { default as Gallery } from './components/Gallery/Gallery';\nexport type { GalleryProps } from './components/Gallery/Gallery';\nexport { default as Avatar } from './components/Avatar/Avatar';\nexport type { AvatarProps } from './components/Avatar/Avatar';\nexport { default as Progress } from './components/Progress/Progress';\nexport type { ProgressProps } from './components/Progress/Progress';\nexport { default as Search } from './components/Search/Search';\nexport type { SearchProps } from './components/Search/Search';\nexport { default as Tabs } from './components/Tabs/Tabs';\nexport type { TabsProps } from './components/Tabs/Tabs';\nexport { default as TabsItem } from './components/TabsItem/TabsItem';\nexport type { TabsItemProps } from './components/TabsItem/TabsItem';\nexport { default as Spinner } from './components/Spinner/Spinner';\nexport type { SpinnerProps } from './components/Spinner/Spinner';\nexport { default as PullToRefresh } from './components/PullToRefresh/PullToRefresh';\nexport type { PullToRefreshProps } from './components/PullToRefresh/PullToRefresh';\nexport { default as Link } from './components/Link/Link';\nexport type { LinkProps } from './components/Link/Link';\nexport { default as Tooltip } from './components/Tooltip/Tooltip';\nexport type { TooltipProps } from './components/Tooltip/Tooltip';\nexport { TooltipContainer } from './components/Tooltip/TooltipContainer';\nexport { default as Counter } from './components/Counter/Counter';\nexport type { CounterProps } from './components/Counter/Counter';\nexport { default as UsersStack } from './components/UsersStack/UsersStack';\nexport type { UsersStackProps } from './components/UsersStack/UsersStack';\nexport { default as Separator } from './components/Separator/Separator';\nexport type { SeparatorProps } from './components/Separator/Separator';\nexport { Spacing } from './components/Spacing/Spacing';\nexport type { SpacingProps } from './components/Spacing/Spacing';\nexport { default as Placeholder } from './components/Placeholder/Placeholder';\nexport type { PlaceholderProps } from './components/Placeholder/Placeholder';\nexport { default as Banner } from './components/Banner/Banner';\nexport type { BannerProps } from './components/Banner/Banner';\nexport { MiniInfoCell } from './components/MiniInfoCell/MiniInfoCell';\nexport type { MiniInfoCellProps } from './components/MiniInfoCell/MiniInfoCell';\nexport { WriteBar } from './components/WriteBar/WriteBar';\nexport type { WriteBarProps } from './components/WriteBar/WriteBar';\nexport { WriteBarIcon } from './components/WriteBarIcon/WriteBarIcon';\nexport type { WriteBarIconProps } from './components/WriteBarIcon/WriteBarIcon';\nexport { SubnavigationBar } from './components/SubnavigationBar/SubnavigationBar';\nexport type { SubnavigationBarProps } from './components/SubnavigationBar/SubnavigationBar';\nexport { SubnavigationButton } from './components/SubnavigationButton/SubnavigationButton';\nexport type { SubnavigationButtonProps } from './components/SubnavigationButton/SubnavigationButton';\n\n/**\n * Forms\n */\nexport { default as FormLayout } from './components/FormLayout/FormLayout';\nexport type { FormLayoutProps } from './components/FormLayout/FormLayout';\nexport { FormItem } from './components/FormItem/FormItem';\nexport type { FormItemProps } from './components/FormItem/FormItem';\nexport { FormField } from './components/FormField/FormField';\nexport type { FormFieldProps } from './components/FormField/FormField';\nexport { default as FormLayoutGroup } from './components/FormLayoutGroup/FormLayoutGroup';\nexport type { FormLayoutGroupProps } from './components/FormLayoutGroup/FormLayoutGroup';\nexport { FormStatus } from './components/FormStatus/FormStatus';\nexport type { FormStatusProps } from './components/FormStatus/FormStatus';\nexport { Switch } from './components/Switch/Switch';\nexport type { SwitchProps } from './components/Switch/Switch';\nexport { default as File } from './components/File/File';\nexport type { FileProps } from './components/File/File';\nexport { default as Input } from './components/Input/Input';\nexport type { InputProps } from './components/Input/Input';\nexport { default as Chip } from './components/Chip/Chip';\nexport type { ChipProps } from './components/Chip/Chip';\nexport { default as ChipsInput } from './components/ChipsInput/ChipsInput';\nexport type { ChipsInputProps } from './components/ChipsInput/ChipsInput';\nexport { default as Slider } from './components/Slider/Slider';\nexport type { SliderProps } from './components/Slider/Slider';\nexport { default as RangeSlider } from './components/RangeSlider/RangeSlider';\nexport type { RangeSliderProps } from './components/RangeSlider/RangeSlider';\nexport { default as Textarea } from './components/Textarea/Textarea';\nexport type { TextareaProps } from './components/Textarea/Textarea';\nexport { default as Radio } from './components/Radio/Radio';\nexport type { RadioProps } from './components/Radio/Radio';\nexport { default as Checkbox } from './components/Checkbox/Checkbox';\nexport type { CheckboxProps } from './components/Checkbox/Checkbox';\nexport { default as Select } from './components/Select/Select';\nexport type { SelectProps } from './components/Select/Select';\nexport { default as SelectMimicry } from './components/SelectMimicry/SelectMimicry';\nexport type { SelectMimicryProps } from './components/SelectMimicry/SelectMimicry';\nexport { default as NativeSelect } from './components/NativeSelect/NativeSelect';\nexport type { NativeSelectProps } from './components/NativeSelect/NativeSelect';\nexport { default as CustomSelect } from './components/CustomSelect/CustomSelect';\nexport type { CustomSelectProps, CustomSelectOptionInterface } from './components/CustomSelect/CustomSelect';\nexport { default as CustomSelectOption } from './components/CustomSelectOption/CustomSelectOption';\nexport type { CustomSelectOptionProps } from './components/CustomSelectOption/CustomSelectOption';\nexport { default as DatePicker } from './components/DatePicker/DatePicker';\nexport type { DatePickerProps, DatePickerDateFormat } from './components/DatePicker/DatePicker';\nexport { default as SliderSwitch } from './components/SliderSwitch/SliderSwitch';\nexport type { SliderSwitchProps, SliderSwitchOptionInterface } from './components/SliderSwitch/SliderSwitch';\n\n/**\n * Helpers\n */\nexport { default as Div } from './components/Div/Div';\nexport type { DivProps } from './components/Div/Div';\nexport { default as Tappable } from './components/Tappable/Tappable';\nexport type { TappableProps } from './components/Tappable/Tappable';\nexport { Touch } from './components/Touch/Touch';\nexport type { TouchProps } from './components/Touch/Touch';\nexport { default as PanelSpinner } from './components/PanelSpinner/PanelSpinner';\nexport type { PanelSpinnerProps } from './components/PanelSpinner/PanelSpinner';\nexport { default as PanelHeaderClose } from './components/PanelHeaderClose/PanelHeaderClose';\nexport { default as PanelHeaderBack } from './components/PanelHeaderBack/PanelHeaderBack';\nexport { default as PanelHeaderSubmit } from './components/PanelHeaderSubmit/PanelHeaderSubmit';\nexport { default as PanelHeaderEdit } from './components/PanelHeaderEdit/PanelHeaderEdit';\nexport type { PanelHeaderEditProps } from './components/PanelHeaderEdit/PanelHeaderEdit';\nexport { ModalCardBase } from './components/ModalCardBase/ModalCardBase';\nexport type { ModalCardBaseProps } from './components/ModalCardBase/ModalCardBase';\n\n/**\n * Wrappers\n */\nexport { AppRoot } from './components/AppRoot/AppRoot';\nexport { default as AdaptivityProvider } from './components/AdaptivityProvider/AdaptivityProvider';\nexport { default as ConfigProvider } from './components/ConfigProvider/ConfigProvider';\nexport type { ConfigProviderProps } from './components/ConfigProvider/ConfigProvider';\nexport {\n ConfigProviderContext,\n Appearance,\n Scheme,\n WebviewType,\n} from './components/ConfigProvider/ConfigProviderContext';\n\n/**\n * Advertisement\n */\nexport { default as PromoBanner } from './components/PromoBanner/PromoBanner';\nexport type { PromoBannerProps } from './components/PromoBanner/PromoBanner';\n\n/**\n * Typography\n */\nexport { default as Title } from './components/Typography/Title/Title';\nexport type { TitleProps } from './components/Typography/Title/Title';\nexport { default as Headline } from './components/Typography/Headline/Headline';\nexport type { HeadlineProps } from './components/Typography/Headline/Headline';\nexport { default as Text } from './components/Typography/Text/Text';\nexport type { TextProps } from './components/Typography/Text/Text';\nexport { default as Caption } from './components/Typography/Caption/Caption';\nexport type { CaptionProps } from './components/Typography/Caption/Caption';\nexport { default as Subhead } from './components/Typography/Subhead/Subhead';\nexport type { SubheadProps } from './components/Typography/Subhead/Subhead';\n\n/**\n * HOCs\n */\nexport { withInsets } from './hoc/withInsets';\nexport { withPlatform } from './hoc/withPlatform';\nexport { withAdaptivity } from './hoc/withAdaptivity';\n\n/**\n * Hooks\n */\nexport { useInsets } from './hooks/useInsets';\nexport { usePlatform } from './hooks/usePlatform';\nexport { useAdaptivity } from './hooks/useAdaptivity';\nexport { useAppearance } from './hooks/useAppearance';\n\n/**\n * Utils\n */\nexport { classNamesString as classNames } from './lib/classNames';\nexport { default as animate } from './lib/animate';\nexport { removeObjectKeys } from './lib/removeObjectKeys';\nexport { SSRWrapper } from './lib/SSR';\nexport { platform, ANDROID, IOS, VKCOM, Platform, IS_PLATFORM_ANDROID, IS_PLATFORM_IOS } from './lib/platform';\nexport { getClassName } from './helpers/getClassName';\nexport { ViewWidth, ViewHeight, SizeType } from './components/AdaptivityProvider/AdaptivityContext';\n\n/**\n * Types\n */\nexport type { AlignType, HasPlatform, HasInsets } from './types';\nexport type { NavIdProps } from './lib/getNavId';\nexport type { PlatformType } from './lib/platform';\nexport type { AdaptivityProps } from './hoc/withAdaptivity';\n"],"file":"index.js"}
@@ -0,0 +1,7 @@
1
+ declare type Option = {
2
+ label?: string;
3
+ [index: string]: any;
4
+ };
5
+ declare type GetOptionLabel = (option: Option) => string;
6
+ export declare const defaultFilterFn: (query: string, option: Option, getOptionLabel?: GetOptionLabel) => boolean;
7
+ export {};
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.defaultFilterFn = void 0;
9
+
10
+ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
11
+
12
+ var findAllIncludes = function findAllIncludes() {
13
+ var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
14
+ var search = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
15
+ var includes = [];
16
+ var i = target.indexOf(search);
17
+
18
+ while (i !== -1) {
19
+ includes.push(i);
20
+ i = target.indexOf(search, i + 1);
21
+ }
22
+
23
+ return includes;
24
+ };
25
+
26
+ var letterRegexp; // На момент написания флаг u не поддерживался рядом браузеров, поэтому добавили фоллбэк.
27
+
28
+ try {
29
+ letterRegexp = new RegExp('\\p{L}', 'u');
30
+ } catch (e) {}
31
+
32
+ var defaultFilterFn = function defaultFilterFn() {
33
+ var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
34
+ var option = arguments.length > 1 ? arguments[1] : undefined;
35
+ var getOptionLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (option) {
36
+ return option.label;
37
+ };
38
+ query = query.toLocaleLowerCase();
39
+ var label = getOptionLabel(option).toLocaleLowerCase();
40
+
41
+ if (label.startsWith(query)) {
42
+ return true;
43
+ }
44
+
45
+ var includes = findAllIncludes(label, query); // Ищем вхождение перед началом которого не буква
46
+
47
+ if (letterRegexp) {
48
+ var _iterator = (0, _createForOfIteratorHelper2.default)(includes),
49
+ _step;
50
+
51
+ try {
52
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
53
+ var _index = _step.value;
54
+
55
+ if (!letterRegexp.test(label[_index - 1])) {
56
+ return true;
57
+ }
58
+ }
59
+ } catch (err) {
60
+ _iterator.e(err);
61
+ } finally {
62
+ _iterator.f();
63
+ }
64
+ } else {
65
+ // если regexp не поддерживается, то ищем любое вхождение
66
+ return includes.length > 0;
67
+ }
68
+
69
+ return false;
70
+ };
71
+
72
+ exports.defaultFilterFn = defaultFilterFn;
73
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/select.ts"],"names":["findAllIncludes","target","search","includes","i","indexOf","push","letterRegexp","RegExp","e","defaultFilterFn","query","option","getOptionLabel","label","toLocaleLowerCase","startsWith","index","test","length"],"mappings":";;;;;;;;;;;AAOA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,GAA8B;AAAA,MAA7BC,MAA6B,uEAApB,EAAoB;AAAA,MAAhBC,MAAgB,uEAAP,EAAO;AACpD,MAAMC,QAAQ,GAAG,EAAjB;AAEA,MAAIC,CAAC,GAAGH,MAAM,CAACI,OAAP,CAAeH,MAAf,CAAR;;AACA,SAAOE,CAAC,KAAK,CAAC,CAAd,EAAiB;AACfD,IAAAA,QAAQ,CAACG,IAAT,CAAcF,CAAd;AACAA,IAAAA,CAAC,GAAGH,MAAM,CAACI,OAAP,CAAeH,MAAf,EAAuBE,CAAC,GAAG,CAA3B,CAAJ;AACD;;AAED,SAAOD,QAAP;AACD,CAVD;;AAYA,IAAII,YAAJ,C,CAEA;;AACA,IAAI;AACFA,EAAAA,YAAY,GAAG,IAAIC,MAAJ,CAAW,QAAX,EAAqB,GAArB,CAAf;AACD,CAFD,CAEE,OAAOC,CAAP,EAAU,CAAE;;AAEP,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,GAI1B;AAAA,MAHHC,KAGG,uEAHK,EAGL;AAAA,MAFHC,MAEG;AAAA,MADHC,cACG,uEAD8B,UAACD,MAAD;AAAA,WAAYA,MAAM,CAACE,KAAnB;AAAA,GAC9B;AACHH,EAAAA,KAAK,GAAGA,KAAK,CAACI,iBAAN,EAAR;AACA,MAAID,KAAK,GAAGD,cAAc,CAACD,MAAD,CAAd,CAAuBG,iBAAvB,EAAZ;;AAEA,MAAID,KAAK,CAACE,UAAN,CAAiBL,KAAjB,CAAJ,EAA6B;AAC3B,WAAO,IAAP;AACD;;AAED,MAAMR,QAAQ,GAAGH,eAAe,CAACc,KAAD,EAAQH,KAAR,CAAhC,CARG,CAUH;;AACA,MAAIJ,YAAJ,EAAkB;AAAA,6DACIJ,QADJ;AAAA;;AAAA;AAChB,0DAA8B;AAAA,YAAnBc,MAAmB;;AAC5B,YAAI,CAACV,YAAY,CAACW,IAAb,CAAkBJ,KAAK,CAACG,MAAK,GAAG,CAAT,CAAvB,CAAL,EAA0C;AACxC,iBAAO,IAAP;AACD;AACF;AALe;AAAA;AAAA;AAAA;AAAA;AAMjB,GAND,MAMO;AAAE;AACP,WAAOd,QAAQ,CAACgB,MAAT,GAAkB,CAAzB;AACD;;AAED,SAAO,KAAP;AACD,CA1BM","sourcesContent":["type Option = {\n label?: string;\n [index: string]: any;\n};\n\ntype GetOptionLabel = (option: Option) => string;\n\nconst findAllIncludes = (target = '', search = '') => {\n const includes = [];\n\n let i = target.indexOf(search);\n while (i !== -1) {\n includes.push(i);\n i = target.indexOf(search, i + 1);\n }\n\n return includes;\n};\n\nlet letterRegexp: RegExp;\n\n// На момент написания флаг u не поддерживался рядом браузеров, поэтому добавили фоллбэк.\ntry {\n letterRegexp = new RegExp('\\\\p{L}', 'u');\n} catch (e) {}\n\nexport const defaultFilterFn = (\n query = '',\n option: Option,\n getOptionLabel: GetOptionLabel = (option) => option.label,\n) => {\n query = query.toLocaleLowerCase();\n let label = getOptionLabel(option).toLocaleLowerCase();\n\n if (label.startsWith(query)) {\n return true;\n }\n\n const includes = findAllIncludes(label, query);\n\n // Ищем вхождение перед началом которого не буква\n if (letterRegexp) {\n for (const index of includes) {\n if (!letterRegexp.test(label[index - 1])) {\n return true;\n }\n }\n } else { // если regexp не поддерживается, то ищем любое вхождение\n return includes.length > 0;\n }\n\n return false;\n};\n"],"file":"select.js"}
@@ -3,7 +3,7 @@ export interface VKUITouchEvent extends MouseEvent, TouchEvent {
3
3
  export declare type VKUITouchEventHander = (e: VKUITouchEvent) => void;
4
4
  declare const coordX: (e: VKUITouchEvent) => number;
5
5
  declare const coordY: (e: VKUITouchEvent) => number;
6
- declare const touchEnabled: boolean;
6
+ declare const touchEnabled: () => boolean;
7
7
  declare function getSupportedEvents(): string[];
8
8
  declare function rubber(offset: number, dimension: number, resistanceRate: number, isAndroid: boolean): number;
9
9
  export { getSupportedEvents, coordX, coordY, touchEnabled, rubber };
@@ -36,17 +36,21 @@ var coordY = function coordY(e) {
36
36
 
37
37
 
38
38
  exports.coordY = coordY;
39
- var touchEnabled = _vkjs.canUseDOM && 'ontouchstart' in window;
39
+
40
+ var touchEnabled = function touchEnabled() {
41
+ return _vkjs.canUseDOM && 'ontouchstart' in window;
42
+ };
40
43
  /*
41
44
  * Возвращает массив поддерживаемых событий
42
45
  * Если браузер поддерживает pointer events или подключена handjs, вернет события указателя.
43
46
  * Если нет, используем события мыши
44
47
  */
45
48
 
49
+
46
50
  exports.touchEnabled = touchEnabled;
47
51
 
48
52
  function getSupportedEvents() {
49
- if (touchEnabled) {
53
+ if (touchEnabled()) {
50
54
  return ['touchstart', 'touchmove', 'touchend', 'touchcancel'];
51
55
  }
52
56
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/touch.ts"],"names":["coordX","e","clientX","changedTouches","coordY","clientY","touchEnabled","canUseDOM","window","getSupportedEvents","rubber","offset","dimension","resistanceRate","isAndroid","offsettedResistance"],"mappings":";;;;;;;;;AAAA;;AAKA;AACA;AACA;AACA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,CAAD,EAA+B;AAC5C,MAAIA,CAAC,CAACC,OAAF,IAAa,IAAjB,EAAuB;AACrB,WAAOD,CAAC,CAACC,OAAT;AACD;;AACD,SAAOD,CAAC,CAACE,cAAF,IAAoBF,CAAC,CAACE,cAAF,CAAiB,CAAjB,EAAoBD,OAA/C;AACD,CALD;AAOA;AACA;AACA;;;;;AACA,IAAME,MAAM,GAAG,SAATA,MAAS,CAACH,CAAD,EAA+B;AAC5C,MAAIA,CAAC,CAACI,OAAF,IAAa,IAAjB,EAAuB;AACrB,WAAOJ,CAAC,CAACI,OAAT;AACD;;AACD,SAAOJ,CAAC,CAACE,cAAF,IAAoBF,CAAC,CAACE,cAAF,CAAiB,CAAjB,EAAoBE,OAA/C;AACD,CALD,C,CAOA;;;;AACA,IAAMC,YAAqB,GAAGC,mBAAa,kBAAkBC,MAA7D;AAEA;AACA;AACA;AACA;AACA;;;;AACA,SAASC,kBAAT,GAAwC;AACtC,MAAIH,YAAJ,EAAkB;AAChB,WAAO,CAAC,YAAD,EAAe,WAAf,EAA4B,UAA5B,EAAwC,aAAxC,CAAP;AACD;;AAED,SAAO,CAAC,WAAD,EAAc,WAAd,EAA2B,SAA3B,EAAsC,YAAtC,CAAP;AACD;AAED;AACA;AACA;;;AACA,SAASI,MAAT,CAAgBC,MAAhB,EAAgCC,SAAhC,EAAmDC,cAAnD,EAA2EC,SAA3E,EAAuG;AACrG,MAAIA,SAAS,IAAIH,MAAM,GAAG,CAA1B,EAA6B;AAC3B,WAAOA,MAAP;AACD;;AAED,MAAMI,mBAAmB,GAAGJ,MAAM,GAAGE,cAArC;AACA,SAAOE,mBAAmB,GAAGH,SAAtB,IAAmCG,mBAAmB,GAAGH,SAAzD,CAAP;AACD","sourcesContent":["import { canUseDOM } from '@vkontakte/vkjs';\n\nexport interface VKUITouchEvent extends MouseEvent, TouchEvent {}\nexport type VKUITouchEventHander = (e: VKUITouchEvent) => void;\n\n/*\n * Получает координату по оси абсцисс из touch- или mouse-события\n */\nconst coordX = (e: VKUITouchEvent): number => {\n if (e.clientX != null) {\n return e.clientX;\n }\n return e.changedTouches && e.changedTouches[0].clientX;\n};\n\n/*\n * Получает координату по оси ординат из touch- или mouse-события\n */\nconst coordY = (e: VKUITouchEvent): number => {\n if (e.clientY != null) {\n return e.clientY;\n }\n return e.changedTouches && e.changedTouches[0].clientY;\n};\n\n// eslint-disable-next-line no-restricted-globals\nconst touchEnabled: boolean = canUseDOM && 'ontouchstart' in window;\n\n/*\n * Возвращает массив поддерживаемых событий\n * Если браузер поддерживает pointer events или подключена handjs, вернет события указателя.\n * Если нет, используем события мыши\n */\nfunction getSupportedEvents(): string[] {\n if (touchEnabled) {\n return ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n }\n\n return ['mousedown', 'mousemove', 'mouseup', 'mouseleave'];\n}\n\n/*\n * Рассчитывает \"сопротивление\" для iOS тач-событий\n */\nfunction rubber(offset: number, dimension: number, resistanceRate: number, isAndroid: boolean): number {\n if (isAndroid || offset < 0) {\n return offset;\n }\n\n const offsettedResistance = offset * resistanceRate;\n return offsettedResistance * dimension / (offsettedResistance + dimension);\n}\n\nexport { getSupportedEvents, coordX, coordY, touchEnabled, rubber };\n"],"file":"touch.js"}
1
+ {"version":3,"sources":["../../../src/lib/touch.ts"],"names":["coordX","e","clientX","changedTouches","coordY","clientY","touchEnabled","canUseDOM","window","getSupportedEvents","rubber","offset","dimension","resistanceRate","isAndroid","offsettedResistance"],"mappings":";;;;;;;;;AAAA;;AAKA;AACA;AACA;AACA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,CAAD,EAA+B;AAC5C,MAAIA,CAAC,CAACC,OAAF,IAAa,IAAjB,EAAuB;AACrB,WAAOD,CAAC,CAACC,OAAT;AACD;;AACD,SAAOD,CAAC,CAACE,cAAF,IAAoBF,CAAC,CAACE,cAAF,CAAiB,CAAjB,EAAoBD,OAA/C;AACD,CALD;AAOA;AACA;AACA;;;;;AACA,IAAME,MAAM,GAAG,SAATA,MAAS,CAACH,CAAD,EAA+B;AAC5C,MAAIA,CAAC,CAACI,OAAF,IAAa,IAAjB,EAAuB;AACrB,WAAOJ,CAAC,CAACI,OAAT;AACD;;AACD,SAAOJ,CAAC,CAACE,cAAF,IAAoBF,CAAC,CAACE,cAAF,CAAiB,CAAjB,EAAoBE,OAA/C;AACD,CALD,C,CAOA;;;;;AACA,IAAMC,YAAY,GAAG,SAAfA,YAAe;AAAA,SAAMC,mBAAa,kBAAkBC,MAArC;AAAA,CAArB;AAEA;AACA;AACA;AACA;AACA;;;;;AACA,SAASC,kBAAT,GAAwC;AACtC,MAAIH,YAAY,EAAhB,EAAoB;AAClB,WAAO,CAAC,YAAD,EAAe,WAAf,EAA4B,UAA5B,EAAwC,aAAxC,CAAP;AACD;;AAED,SAAO,CAAC,WAAD,EAAc,WAAd,EAA2B,SAA3B,EAAsC,YAAtC,CAAP;AACD;AAED;AACA;AACA;;;AACA,SAASI,MAAT,CAAgBC,MAAhB,EAAgCC,SAAhC,EAAmDC,cAAnD,EAA2EC,SAA3E,EAAuG;AACrG,MAAIA,SAAS,IAAIH,MAAM,GAAG,CAA1B,EAA6B;AAC3B,WAAOA,MAAP;AACD;;AAED,MAAMI,mBAAmB,GAAGJ,MAAM,GAAGE,cAArC;AACA,SAAOE,mBAAmB,GAAGH,SAAtB,IAAmCG,mBAAmB,GAAGH,SAAzD,CAAP;AACD","sourcesContent":["import { canUseDOM } from '@vkontakte/vkjs';\n\nexport interface VKUITouchEvent extends MouseEvent, TouchEvent {}\nexport type VKUITouchEventHander = (e: VKUITouchEvent) => void;\n\n/*\n * Получает координату по оси абсцисс из touch- или mouse-события\n */\nconst coordX = (e: VKUITouchEvent): number => {\n if (e.clientX != null) {\n return e.clientX;\n }\n return e.changedTouches && e.changedTouches[0].clientX;\n};\n\n/*\n * Получает координату по оси ординат из touch- или mouse-события\n */\nconst coordY = (e: VKUITouchEvent): number => {\n if (e.clientY != null) {\n return e.clientY;\n }\n return e.changedTouches && e.changedTouches[0].clientY;\n};\n\n// eslint-disable-next-line no-restricted-globals\nconst touchEnabled = () => canUseDOM && 'ontouchstart' in window;\n\n/*\n * Возвращает массив поддерживаемых событий\n * Если браузер поддерживает pointer events или подключена handjs, вернет события указателя.\n * Если нет, используем события мыши\n */\nfunction getSupportedEvents(): string[] {\n if (touchEnabled()) {\n return ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n }\n\n return ['mousedown', 'mousemove', 'mouseup', 'mouseleave'];\n}\n\n/*\n * Рассчитывает \"сопротивление\" для iOS тач-событий\n */\nfunction rubber(offset: number, dimension: number, resistanceRate: number, isAndroid: boolean): number {\n if (isAndroid || offset < 0) {\n return offset;\n }\n\n const offsettedResistance = offset * resistanceRate;\n return offsettedResistance * dimension / (offsettedResistance + dimension);\n}\n\nexport { getSupportedEvents, coordX, coordY, touchEnabled, rubber };\n"],"file":"touch.js"}
@@ -1,5 +1,4 @@
1
1
  import * as React from 'react';
2
- import { Ref, RefWithCurrent } from '../types';
3
2
  export declare type ImgOnlyAttributes = {
4
3
  [index in Exclude<keyof React.ImgHTMLAttributes<HTMLImageElement>, keyof React.HTMLAttributes<HTMLImageElement>>]: React.ImgHTMLAttributes<HTMLImageElement>[index];
5
4
  };
@@ -9,8 +8,8 @@ export declare function debounce<A extends any[]>(fn: (...args: A) => void, dela
9
8
  export declare function leadingZero(val: number): string;
10
9
  export declare function hasReactNode(value: React.ReactNode): boolean;
11
10
  export declare function isPrimitiveReactNode(node: React.ReactNode): boolean;
12
- export declare function setRef<T>(element: T, ref: Ref<T>): void;
13
- export declare function multiRef<T>(...refs: Array<Ref<T>>): RefWithCurrent<T>;
11
+ export declare function setRef<T>(element: T, ref: React.Ref<T>): void;
12
+ export declare function multiRef<T>(...refs: Array<React.Ref<T>>): React.RefObject<T>;
14
13
  export declare const noop: () => void;
15
14
  export declare function createCustomEvent(window: any, type: string, eventInitDict?: any): any;
16
15
  export declare function getTitleFromChildren(children: React.ReactNode): string;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/utils.ts"],"names":["isNumeric","value","isNaN","parseFloat","isFinite","isFunction","debounce","fn","delay","timeout","args","clearTimeout","setTimeout","leadingZero","val","strVal","toFixed","length","hasReactNode","undefined","isPrimitiveReactNode","node","setRef","element","ref","current","multiRef","refs","forEach","noop","createCustomEvent","window","type","eventInitDict","CustomEvent","options","bubbles","cancelable","detail","evt","document","createEvent","initCustomEvent","getTitleFromChildren","children","label","React","Children","map","child"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AAOA;AACO,SAASA,SAAT,CAAmBC,KAAnB,EAAwC;AAC7C,SAAO,CAACC,KAAK,CAACC,UAAU,CAACF,KAAD,CAAX,CAAN,IAA6BG,QAAQ,CAACH,KAAD,CAA5C;AACD,C,CAED;;;AACO,SAASI,UAAT,CAAoBJ,KAApB,EAAoE;AACzE,SAAO,OAAOA,KAAP,KAAiB,UAAxB;AACD;;AAEM,SAASK,QAAT,CAAmCC,EAAnC,EAA6DC,KAA7D,EAA4E;AACjF,MAAIC,OAAJ;AAEA,SAAO,YAAgB;AAAA,sCAAZC,IAAY;AAAZA,MAAAA,IAAY;AAAA;;AACrBC,IAAAA,YAAY,CAACF,OAAD,CAAZ;AACAA,IAAAA,OAAO,GAAGG,UAAU,CAAC;AAAA,aAAML,EAAE,MAAF,SAAMG,IAAN,CAAN;AAAA,KAAD,EAAoBF,KAApB,CAApB;AACD,GAHD;AAID;;AAEM,SAASK,WAAT,CAAqBC,GAArB,EAAkC;AACvC,MAAIC,MAAM,GAAGD,GAAG,CAACE,OAAJ,EAAb;;AAEA,MAAID,MAAM,CAACE,MAAP,KAAkB,CAAtB,EAAyB;AACvB,WAAO,MAAMF,MAAb;AACD;;AAED,SAAOA,MAAP;AACD;;AAEM,SAASG,YAAT,CAAsBjB,KAAtB,EAAuD;AAC5D,SAAOA,KAAK,KAAKkB,SAAV,IAAuBlB,KAAK,KAAK,KAAjC,IAA0CA,KAAK,KAAK,IAApD,IAA4DA,KAAK,KAAK,EAA7E;AACD;;AAEM,SAASmB,oBAAT,CAA8BC,IAA9B,EAA8D;AACnE,SAAO,OAAOA,IAAP,KAAgB,QAAhB,IAA4B,OAAOA,IAAP,KAAgB,QAAnD;AACD;;AAEM,SAASC,MAAT,CAAmBC,OAAnB,EAA+BC,GAA/B,EAAkD;AACvD,MAAIA,GAAJ,EAAS;AACP,QAAI,OAAOA,GAAP,KAAe,UAAnB,EAA+B;AAC7BA,MAAAA,GAAG,CAACD,OAAD,CAAH;AACD,KAFD,MAEO;AACLC,MAAAA,GAAG,CAACC,OAAJ,GAAcF,OAAd;AACD;AACF;AACF;;AAEM,SAASG,QAAT,GAAgE;AAAA,qCAAxCC,IAAwC;AAAxCA,IAAAA,IAAwC;AAAA;;AACrE,MAAIF,OAAiB,GAAG,IAAxB;AACA,SAAO;AACL,QAAIA,OAAJ,GAAc;AACZ,aAAOA,OAAP;AACD,KAHI;;AAIL,QAAIA,OAAJ,CAAYF,OAAZ,EAAqB;AACnBE,MAAAA,OAAO,GAAGF,OAAV;AACAI,MAAAA,IAAI,CAACC,OAAL,CAAa,UAACJ,GAAD;AAAA,eAASF,MAAM,CAACC,OAAD,EAAUC,GAAV,CAAf;AAAA,OAAb;AACD;;AAPI,GAAP;AASD,C,CAED;;;AACO,IAAMK,IAAI,GAAG,SAAPA,IAAO,GAAM,CAAE,CAArB;;;;AAEA,SAASC,iBAAT,CAA2BC,MAA3B,EAAwCC,IAAxC,EAAsDC,aAAtD,EAA2E;AAChF,MAAI,OAAOF,MAAM,CAACG,WAAd,KAA8B,UAAlC,EAA8C;AAC5C,QAAMC,OAAO,GAAGF,aAAa,IAAI;AAAEG,MAAAA,OAAO,EAAE,KAAX;AAAkBC,MAAAA,UAAU,EAAE,KAA9B;AAAqCC,MAAAA,MAAM,EAAE;AAA7C,KAAjC;AAEA,QAAMC,GAAG,GAAGR,MAAM,CAACS,QAAP,CAAgBC,WAAhB,CAA4B,aAA5B,CAAZ;AACAF,IAAAA,GAAG,CAACG,eAAJ,CACEV,IADF,EAEEG,OAAO,CAACC,OAFV,EAGED,OAAO,CAACE,UAHV,EAIEF,OAAO,CAACG,MAJV;AAMA,WAAOC,GAAP;AACD;;AAED,SAAO,IAAIR,MAAM,CAACG,WAAX,CAAuBF,IAAvB,EAA6BC,aAA7B,CAAP;AACD;;AAEM,SAASU,oBAAT,CAA8BC,QAA9B,EAAiE;AACtE,MAAIC,KAAK,GAAG,EAAZ;AAEAC,EAAAA,KAAK,CAACC,QAAN,CAAeC,GAAf,CAAmBJ,QAAnB,EAA6B,UAACK,KAAD,EAAW;AACtC,QAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC7BJ,MAAAA,KAAK,IAAII,KAAT;AACD;AACF,GAJD;AAMA,SAAOJ,KAAP;AACD","sourcesContent":["import * as React from 'react';\nimport { Ref, RefWithCurrent } from '../types';\n\nexport type ImgOnlyAttributes = {\n [index in Exclude<keyof React.ImgHTMLAttributes<HTMLImageElement>, keyof React.HTMLAttributes<HTMLImageElement>>]: React.ImgHTMLAttributes<HTMLImageElement>[index];\n};\n\n// Является ли переданное значение числовым\nexport function isNumeric(value: any): boolean {\n return !isNaN(parseFloat(value)) && isFinite(value);\n}\n\n// Является ли переданное значение функцией\nexport function isFunction(value: any): value is ((...args: any[]) => any) {\n return typeof value === 'function';\n}\n\nexport function debounce<A extends any[]>(fn: (...args: A) => void, delay: number) {\n let timeout: any;\n\n return (...args: A) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => fn(...args), delay);\n };\n}\n\nexport function leadingZero(val: number) {\n let strVal = val.toFixed();\n\n if (strVal.length === 1) {\n return '0' + strVal;\n }\n\n return strVal;\n}\n\nexport function hasReactNode(value: React.ReactNode): boolean {\n return value !== undefined && value !== false && value !== null && value !== '';\n}\n\nexport function isPrimitiveReactNode(node: React.ReactNode): boolean {\n return typeof node === 'string' || typeof node === 'number';\n}\n\nexport function setRef<T>(element: T, ref: Ref<T>): void {\n if (ref) {\n if (typeof ref === 'function') {\n ref(element);\n } else {\n ref.current = element;\n }\n }\n}\n\nexport function multiRef<T>(...refs: Array<Ref<T>>): RefWithCurrent<T> {\n let current: T | null = null;\n return {\n get current() {\n return current;\n },\n set current(element) {\n current = element;\n refs.forEach((ref) => setRef(element, ref));\n },\n };\n}\n\n// eslint-disable-next-line\nexport const noop = () => {};\n\nexport function createCustomEvent(window: any, type: string, eventInitDict?: any) {\n if (typeof window.CustomEvent !== 'function') {\n const options = eventInitDict || { bubbles: false, cancelable: false, detail: null };\n\n const evt = window.document.createEvent('CustomEvent');\n evt.initCustomEvent(\n type,\n options.bubbles,\n options.cancelable,\n options.detail,\n );\n return evt;\n }\n\n return new window.CustomEvent(type, eventInitDict);\n}\n\nexport function getTitleFromChildren(children: React.ReactNode): string {\n let label = '';\n\n React.Children.map(children, (child) => {\n if (typeof child === 'string') {\n label += child;\n }\n });\n\n return label;\n}\n"],"file":"utils.js"}
1
+ {"version":3,"sources":["../../../src/lib/utils.ts"],"names":["isNumeric","value","isNaN","parseFloat","isFinite","isFunction","debounce","fn","delay","timeout","args","clearTimeout","setTimeout","leadingZero","val","strVal","toFixed","length","hasReactNode","undefined","isPrimitiveReactNode","node","setRef","element","ref","current","multiRef","refs","forEach","noop","createCustomEvent","window","type","eventInitDict","CustomEvent","options","bubbles","cancelable","detail","evt","document","createEvent","initCustomEvent","getTitleFromChildren","children","label","React","Children","map","child"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AAMA;AACO,SAASA,SAAT,CAAmBC,KAAnB,EAAwC;AAC7C,SAAO,CAACC,KAAK,CAACC,UAAU,CAACF,KAAD,CAAX,CAAN,IAA6BG,QAAQ,CAACH,KAAD,CAA5C;AACD,C,CAED;;;AACO,SAASI,UAAT,CAAoBJ,KAApB,EAAoE;AACzE,SAAO,OAAOA,KAAP,KAAiB,UAAxB;AACD;;AAEM,SAASK,QAAT,CAAmCC,EAAnC,EAA6DC,KAA7D,EAA4E;AACjF,MAAIC,OAAJ;AAEA,SAAO,YAAgB;AAAA,sCAAZC,IAAY;AAAZA,MAAAA,IAAY;AAAA;;AACrBC,IAAAA,YAAY,CAACF,OAAD,CAAZ;AACAA,IAAAA,OAAO,GAAGG,UAAU,CAAC;AAAA,aAAML,EAAE,MAAF,SAAMG,IAAN,CAAN;AAAA,KAAD,EAAoBF,KAApB,CAApB;AACD,GAHD;AAID;;AAEM,SAASK,WAAT,CAAqBC,GAArB,EAAkC;AACvC,MAAIC,MAAM,GAAGD,GAAG,CAACE,OAAJ,EAAb;;AAEA,MAAID,MAAM,CAACE,MAAP,KAAkB,CAAtB,EAAyB;AACvB,WAAO,MAAMF,MAAb;AACD;;AAED,SAAOA,MAAP;AACD;;AAEM,SAASG,YAAT,CAAsBjB,KAAtB,EAAuD;AAC5D,SAAOA,KAAK,KAAKkB,SAAV,IAAuBlB,KAAK,KAAK,KAAjC,IAA0CA,KAAK,KAAK,IAApD,IAA4DA,KAAK,KAAK,EAA7E;AACD;;AAEM,SAASmB,oBAAT,CAA8BC,IAA9B,EAA8D;AACnE,SAAO,OAAOA,IAAP,KAAgB,QAAhB,IAA4B,OAAOA,IAAP,KAAgB,QAAnD;AACD;;AAEM,SAASC,MAAT,CAAmBC,OAAnB,EAA+BC,GAA/B,EAAwD;AAC7D,MAAIA,GAAJ,EAAS;AACP,QAAI,OAAOA,GAAP,KAAe,UAAnB,EAA+B;AAC7BA,MAAAA,GAAG,CAACD,OAAD,CAAH;AACD,KAFD,MAEO;AACJC,MAAAA,GAAD,CAAmCC,OAAnC,GAA6CF,OAA7C;AACD;AACF;AACF;;AAEM,SAASG,QAAT,GAAuE;AAAA,qCAA/CC,IAA+C;AAA/CA,IAAAA,IAA+C;AAAA;;AAC5E,MAAIF,OAAiB,GAAG,IAAxB;AACA,SAAO;AACL,QAAIA,OAAJ,GAAc;AACZ,aAAOA,OAAP;AACD,KAHI;;AAIL,QAAIA,OAAJ,CAAYF,OAAZ,EAAqB;AACnBE,MAAAA,OAAO,GAAGF,OAAV;AACAI,MAAAA,IAAI,CAACC,OAAL,CAAa,UAACJ,GAAD;AAAA,eAASF,MAAM,CAACC,OAAD,EAAUC,GAAV,CAAf;AAAA,OAAb;AACD;;AAPI,GAAP;AASD,C,CAED;;;AACO,IAAMK,IAAI,GAAG,SAAPA,IAAO,GAAM,CAAE,CAArB;;;;AAEA,SAASC,iBAAT,CAA2BC,MAA3B,EAAwCC,IAAxC,EAAsDC,aAAtD,EAA2E;AAChF,MAAI,OAAOF,MAAM,CAACG,WAAd,KAA8B,UAAlC,EAA8C;AAC5C,QAAMC,OAAO,GAAGF,aAAa,IAAI;AAAEG,MAAAA,OAAO,EAAE,KAAX;AAAkBC,MAAAA,UAAU,EAAE,KAA9B;AAAqCC,MAAAA,MAAM,EAAE;AAA7C,KAAjC;AAEA,QAAMC,GAAG,GAAGR,MAAM,CAACS,QAAP,CAAgBC,WAAhB,CAA4B,aAA5B,CAAZ;AACAF,IAAAA,GAAG,CAACG,eAAJ,CACEV,IADF,EAEEG,OAAO,CAACC,OAFV,EAGED,OAAO,CAACE,UAHV,EAIEF,OAAO,CAACG,MAJV;AAMA,WAAOC,GAAP;AACD;;AAED,SAAO,IAAIR,MAAM,CAACG,WAAX,CAAuBF,IAAvB,EAA6BC,aAA7B,CAAP;AACD;;AAEM,SAASU,oBAAT,CAA8BC,QAA9B,EAAiE;AACtE,MAAIC,KAAK,GAAG,EAAZ;AAEAC,EAAAA,KAAK,CAACC,QAAN,CAAeC,GAAf,CAAmBJ,QAAnB,EAA6B,UAACK,KAAD,EAAW;AACtC,QAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC7BJ,MAAAA,KAAK,IAAII,KAAT;AACD;AACF,GAJD;AAMA,SAAOJ,KAAP;AACD","sourcesContent":["import * as React from 'react';\n\nexport type ImgOnlyAttributes = {\n [index in Exclude<keyof React.ImgHTMLAttributes<HTMLImageElement>, keyof React.HTMLAttributes<HTMLImageElement>>]: React.ImgHTMLAttributes<HTMLImageElement>[index];\n};\n\n// Является ли переданное значение числовым\nexport function isNumeric(value: any): boolean {\n return !isNaN(parseFloat(value)) && isFinite(value);\n}\n\n// Является ли переданное значение функцией\nexport function isFunction(value: any): value is ((...args: any[]) => any) {\n return typeof value === 'function';\n}\n\nexport function debounce<A extends any[]>(fn: (...args: A) => void, delay: number) {\n let timeout: any;\n\n return (...args: A) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => fn(...args), delay);\n };\n}\n\nexport function leadingZero(val: number) {\n let strVal = val.toFixed();\n\n if (strVal.length === 1) {\n return '0' + strVal;\n }\n\n return strVal;\n}\n\nexport function hasReactNode(value: React.ReactNode): boolean {\n return value !== undefined && value !== false && value !== null && value !== '';\n}\n\nexport function isPrimitiveReactNode(node: React.ReactNode): boolean {\n return typeof node === 'string' || typeof node === 'number';\n}\n\nexport function setRef<T>(element: T, ref: React.Ref<T>): void {\n if (ref) {\n if (typeof ref === 'function') {\n ref(element);\n } else {\n (ref as React.MutableRefObject<T>).current = element;\n }\n }\n}\n\nexport function multiRef<T>(...refs: Array<React.Ref<T>>): React.RefObject<T> {\n let current: T | null = null;\n return {\n get current() {\n return current;\n },\n set current(element) {\n current = element;\n refs.forEach((ref) => setRef(element, ref));\n },\n };\n}\n\n// eslint-disable-next-line\nexport const noop = () => {};\n\nexport function createCustomEvent(window: any, type: string, eventInitDict?: any) {\n if (typeof window.CustomEvent !== 'function') {\n const options = eventInitDict || { bubbles: false, cancelable: false, detail: null };\n\n const evt = window.document.createEvent('CustomEvent');\n evt.initCustomEvent(\n type,\n options.bubbles,\n options.cancelable,\n options.detail,\n );\n return evt;\n }\n\n return new window.CustomEvent(type, eventInitDict);\n}\n\nexport function getTitleFromChildren(children: React.ReactNode): string {\n let label = '';\n\n React.Children.map(children, (child) => {\n if (typeof child === 'string') {\n label += child;\n }\n });\n\n return label;\n}\n"],"file":"utils.js"}
@@ -3,15 +3,11 @@ import { PlatformType } from './lib/platform';
3
3
  import { Insets } from '@vkontakte/vk-bridge';
4
4
  export declare type AnyFunction = (...args: any[]) => any;
5
5
  export declare type AlignType = 'left' | 'center' | 'right';
6
- export declare type RefWithCurrent<T> = {
7
- current: T | null;
8
- };
9
- export declare type Ref<T> = React.RefCallback<T> | RefWithCurrent<T>;
10
6
  export interface HasRootRef<T> {
11
- getRootRef?: Ref<T>;
7
+ getRootRef?: React.Ref<T>;
12
8
  }
13
9
  export interface HasRef<T> {
14
- getRef?: Ref<T>;
10
+ getRef?: React.Ref<T>;
15
11
  }
16
12
  export interface HasAlign {
17
13
  align?: AlignType;
@@ -5,3 +5,5 @@ export { default as ChipsSelect } from './../components/ChipsSelect/ChipsSelect'
5
5
  export type { ChipsSelectProps } from './../components/ChipsSelect/ChipsSelect';
6
6
  export { default as ViewInfinite } from './../components/View/ViewInfinite';
7
7
  export type { ViewInfiniteProps } from './../components/View/ViewInfinite';
8
+ export { default as SimpleCheckbox } from './../components/SimpleCheckbox/SimpleCheckbox';
9
+ export type { SimpleCheckboxProps } from './../components/SimpleCheckbox/SimpleCheckbox';
@@ -17,8 +17,16 @@ Object.defineProperty(exports, "ViewInfinite", {
17
17
  return _ViewInfinite.default;
18
18
  }
19
19
  });
20
+ Object.defineProperty(exports, "SimpleCheckbox", {
21
+ enumerable: true,
22
+ get: function get() {
23
+ return _SimpleCheckbox.default;
24
+ }
25
+ });
20
26
 
21
27
  var _ChipsSelect = _interopRequireDefault(require("./../components/ChipsSelect/ChipsSelect"));
22
28
 
23
29
  var _ViewInfinite = _interopRequireDefault(require("./../components/View/ViewInfinite"));
30
+
31
+ var _SimpleCheckbox = _interopRequireDefault(require("./../components/SimpleCheckbox/SimpleCheckbox"));
24
32
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/unstable/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAGA;;AAGA","sourcesContent":["/**\n * Forms\n */\nexport { default as ChipsSelect } from './../components/ChipsSelect/ChipsSelect';\nexport type { ChipsSelectProps } from './../components/ChipsSelect/ChipsSelect';\n\nexport { default as ViewInfinite } from './../components/View/ViewInfinite';\nexport type { ViewInfiniteProps } from './../components/View/ViewInfinite';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/unstable/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;;AAGA;;AAGA","sourcesContent":["/**\n * Forms\n */\nexport { default as ChipsSelect } from './../components/ChipsSelect/ChipsSelect';\nexport type { ChipsSelectProps } from './../components/ChipsSelect/ChipsSelect';\n\nexport { default as ViewInfinite } from './../components/View/ViewInfinite';\nexport type { ViewInfiniteProps } from './../components/View/ViewInfinite';\n\nexport { default as SimpleCheckbox } from './../components/SimpleCheckbox/SimpleCheckbox';\nexport type { SimpleCheckboxProps } from './../components/SimpleCheckbox/SimpleCheckbox';\n"],"file":"index.js"}
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { AdaptivityProps } from '../../hoc/withAdaptivity';
3
+ import './AppRoot.css';
3
4
  export interface AppRootProps extends React.HTMLAttributes<HTMLDivElement>, Pick<AdaptivityProps, 'sizeX' | 'hasMouse'> {
4
5
  /** @deprecated Use mode="embedded" */
5
6
  embedded?: boolean;
@@ -15,10 +15,8 @@ import { IconSettingsProvider } from '@vkontakte/icons';
15
15
  import { elementScrollController, globalScrollController, ScrollContext } from "./ScrollContext";
16
16
  import { noop } from "../../lib/utils";
17
17
  import { warnOnce } from "../../lib/warnOnce";
18
- import { useKeyboardInputTracker } from "../../hooks/useKeyboardInputTracker"; // Используйте classList, но будьте осторожны
19
-
20
- /* eslint-disable no-restricted-properties */
21
-
18
+ import { useKeyboardInputTracker } from "../../hooks/useKeyboardInputTracker";
19
+ import { useInsets } from "../../hooks/useInsets";
22
20
  var warn = warnOnce('AppRoot');
23
21
  export var AppRoot = withAdaptivity(function (_ref) {
24
22
  var children = _ref.children,
@@ -46,6 +44,7 @@ export var AppRoot = withAdaptivity(function (_ref) {
46
44
  window = _useDOM.window,
47
45
  document = _useDOM.document;
48
46
 
47
+ var insets = useInsets();
49
48
  var initialized = React.useRef(false);
50
49
 
51
50
  if (!initialized.current) {
@@ -103,7 +102,32 @@ export var AppRoot = withAdaptivity(function (_ref) {
103
102
  document.documentElement.classList.remove('vkui');
104
103
  }
105
104
  };
106
- }, []); // adaptivity handler
105
+ }, []); // setup insets
106
+
107
+ useIsomorphicLayoutEffect(function () {
108
+ if (mode === 'partial') {
109
+ return noop;
110
+ }
111
+
112
+ var parent = rootRef.current.parentElement;
113
+
114
+ for (var key in insets) {
115
+ if (insets.hasOwnProperty(key) && typeof insets[key] === 'number') {
116
+ var inset = insets[key];
117
+ parent.style.setProperty("--safe-area-inset-".concat(key), "".concat(inset, "px"));
118
+ portalRoot && portalRoot.style.setProperty("--safe-area-inset-".concat(key), "".concat(inset, "px"));
119
+ }
120
+ }
121
+
122
+ return function () {
123
+ for (var _key in insets) {
124
+ if (insets.hasOwnProperty(_key)) {
125
+ parent.style.removeProperty("--safe-area-inset-".concat(_key));
126
+ portalRoot && portalRoot.style.removeProperty("--safe-area-inset-".concat(_key));
127
+ }
128
+ }
129
+ };
130
+ }, [insets, portalRoot]); // adaptivity handler
107
131
 
108
132
  useIsomorphicLayoutEffect(function () {
109
133
  if (mode === 'partial' || sizeX !== SizeType.REGULAR) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/AppRoot/AppRoot.tsx"],"names":["React","useDOM","classNames","AppRootContext","withAdaptivity","SizeType","useIsomorphicLayoutEffect","classScopingMode","IconSettingsProvider","elementScrollController","globalScrollController","ScrollContext","noop","warnOnce","useKeyboardInputTracker","warn","AppRoot","children","_mode","mode","_embedded","embedded","sizeX","hasMouse","noLegacyClasses","scroll","props","isKeyboardInputActive","rootRef","useRef","useState","portalRoot","setPortalRoot","window","document","initialized","current","documentElement","classList","add","noConflict","process","env","NODE_ENV","portal","createElement","body","appendChild","parentElement","removeChild","parent","classes","concat","remove","REGULAR","container","scrollController","useMemo","content","appRoot"],"mappings":";;;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,MAAT;AACA,SAASC,UAAT;AACA,SAASC,cAAT;AACA,SAASC,cAAT,EAAyBC,QAAzB;AACA,SAASC,yBAAT;AACA,SAASC,gBAAT;AACA,SAASC,oBAAT,QAAqC,kBAArC;AACA,SAASC,uBAAT,EAAkCC,sBAAlC,EAA0DC,aAA1D;AACA,SAASC,IAAT;AACA,SAASC,QAAT;AACA,SAASC,uBAAT,8C,CAEA;;AACA;;AAaA,IAAMC,IAAI,GAAGF,QAAQ,CAAC,SAAD,CAArB;AACA,OAAO,IAAMG,OAA+B,GAAGZ,cAAc,CAAC,gBAG1C;AAAA,MAFlBa,QAEkB,QAFlBA,QAEkB;AAAA,MAFFC,KAEE,QAFRC,IAEQ;AAAA,MAFeC,SAEf,QAFKC,QAEL;AAAA,MAF0BC,KAE1B,QAF0BA,KAE1B;AAAA,MAFiCC,QAEjC,QAFiCA,QAEjC;AAAA,kCAF2CC,eAE3C;AAAA,MAF2CA,eAE3C,qCAF6D,KAE7D;AAAA,yBAFoEC,MAEpE;AAAA,MAFoEA,MAEpE,4BAF6E,QAE7E;AAAA,MADfC,KACe;;AAClB;AACA,MAAMP,IAAI,GAAGD,KAAK,KAAKE,SAAS,GAAG,UAAH,GAAgB,MAA9B,CAAlB;AACA,MAAMO,qBAAqB,GAAGb,uBAAuB,EAArD;AACA,MAAMc,OAAO,GAAG5B,KAAK,CAAC6B,MAAN,EAAhB;;AACA,wBAAoC7B,KAAK,CAAC8B,QAAN,CAA+B,IAA/B,CAApC;AAAA;AAAA,MAAOC,UAAP;AAAA,MAAmBC,aAAnB;;AACA,gBAA6B/B,MAAM,EAAnC;AAAA,MAAQgC,MAAR,WAAQA,MAAR;AAAA,MAAgBC,QAAhB,WAAgBA,QAAhB;;AAEA,MAAMC,WAAW,GAAGnC,KAAK,CAAC6B,MAAN,CAAa,KAAb,CAApB;;AACA,MAAI,CAACM,WAAW,CAACC,OAAjB,EAA0B;AACxB,QAAIH,MAAM,IAAId,IAAI,KAAK,MAAvB,EAA+B;AAC7Be,MAAAA,QAAQ,CAACG,eAAT,CAAyBC,SAAzB,CAAmCC,GAAnC,CAAuC,MAAvC;AACD;;AACDhC,IAAAA,gBAAgB,CAACiC,UAAjB,GAA8BhB,eAA9B;AACAW,IAAAA,WAAW,CAACC,OAAZ,GAAsB,IAAtB;AACD;;AAED,MAAIK,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;AAC1C,QAAIlB,MAAM,KAAK,QAAX,IAAuBN,IAAI,KAAK,UAApC,EAAgD;AAC9CJ,MAAAA,IAAI,CAAC,8CAAD,CAAJ;AACD;;AACD,QAAIG,KAAK,IAAIE,SAAb,EAAwB;AACtBL,MAAAA,IAAI,kBAAUI,IAAV,2BAAJ;AACD;AACF,GAxBiB,CA0BlB;;;AACAb,EAAAA,yBAAyB,CAAC,YAAM;AAC9B,QAAIa,IAAI,KAAK,MAAb,EAAqB;AACnB,aAAOP,IAAP;AACD;;AAED,QAAMgC,MAAM,GAAGV,QAAQ,CAACW,aAAT,CAAuB,KAAvB,CAAf;AACAD,IAAAA,MAAM,CAACN,SAAP,CAAiBC,GAAjB,CAAqB,mBAArB;AACAL,IAAAA,QAAQ,CAACY,IAAT,CAAcC,WAAd,CAA0BH,MAA1B;AACAZ,IAAAA,aAAa,CAACY,MAAD,CAAb;AACA,WAAO;AAAA,aAAMA,MAAM,CAACI,aAAP,CAAqBC,WAArB,CAAiCL,MAAjC,CAAN;AAAA,KAAP;AACD,GAVwB,EAUtB,EAVsB,CAAzB,CA3BkB,CAuClB;;AACAtC,EAAAA,yBAAyB,CAAC,YAAM;AAAA;;AAC9B,QAAIa,IAAI,KAAK,SAAb,EAAwB;AACtB,aAAOP,IAAP;AACD;;AAED,QAAMsC,MAAM,GAAGtB,OAAO,CAACQ,OAAR,CAAgBY,aAA/B;AACA,QAAMG,OAAO,GAAG,CAAC,YAAD,EAAeC,MAAf,CAAsBjC,IAAI,KAAK,UAAT,GAAsB,sBAAtB,GAA+C,EAArE,CAAhB;;AACA,yBAAA+B,MAAM,CAACZ,SAAP,EAAiBC,GAAjB,6CAAwBY,OAAxB;;AAEA,WAAO,YAAM;AAAA;;AACX,4BAAAD,MAAM,CAACZ,SAAP,EAAiBe,MAAjB,8CAA2BF,OAA3B;;AACA,UAAIhC,IAAI,KAAK,MAAb,EAAqB;AACnBe,QAAAA,QAAQ,CAACG,eAAT,CAAyBC,SAAzB,CAAmCe,MAAnC,CAA0C,MAA1C;AACD;AACF,KALD;AAMD,GAfwB,EAetB,EAfsB,CAAzB,CAxCkB,CAyDlB;;AACA/C,EAAAA,yBAAyB,CAAC,YAAM;AAC9B,QAAIa,IAAI,KAAK,SAAT,IAAsBG,KAAK,KAAKjB,QAAQ,CAACiD,OAA7C,EAAsD;AACpD,aAAO1C,IAAP;AACD;;AACD,QAAM2C,SAAS,GAAGpC,IAAI,KAAK,UAAT,GAAsBS,OAAO,CAACQ,OAAR,CAAgBY,aAAtC,GAAsDd,QAAQ,CAACY,IAAjF;AACAS,IAAAA,SAAS,CAACjB,SAAV,CAAoBC,GAApB,CAAwB,qBAAxB;AACA,WAAO;AAAA,aAAMgB,SAAS,CAACjB,SAAV,CAAoBe,MAApB,CAA2B,qBAA3B,CAAN;AAAA,KAAP;AACD,GAPwB,EAOtB,CAAC/B,KAAD,CAPsB,CAAzB;AASA,MAAMkC,gBAAgB,GAAGxD,KAAK,CAACyD,OAAN,CACvB;AAAA,WAAMhC,MAAM,KAAK,SAAX,GAAuBhB,uBAAuB,CAACmB,OAAD,CAA9C,GAA0DlB,sBAAsB,CAACuB,MAAD,EAASC,QAAT,CAAtF;AAAA,GADuB,EAEvB,CAACT,MAAD,CAFuB,CAAzB;AAIA,MAAMiC,OAAO,GACX,oBAAC,cAAD,CAAgB,QAAhB;AAAyB,IAAA,KAAK,EAAE;AAC9BC,MAAAA,OAAO,EAAE/B,OADqB;AAE9BG,MAAAA,UAAU,EAAEA,UAFkB;AAG9BV,MAAAA,QAAQ,EAAEF,IAAI,KAAK;AAHW;AAAhC,KAKE,oBAAC,aAAD,CAAe,QAAf;AAAwB,IAAA,KAAK,EAAEqC;AAA/B,KACE,oBAAC,oBAAD;AAAsB,IAAA,WAAW,EAAC,MAAlC;AAAyC,IAAA,aAAa,EAAE,CAAChC;AAAzD,KACGP,QADH,CADF,CALF,CADF;AAcA,SAAOE,IAAI,KAAK,SAAT,GAAqBuC,OAArB,GACL;AAAK,IAAA,GAAG,EAAE9B,OAAV;AAAmB,IAAA,SAAS,EAAE1B,UAAU,CAAC,SAAD,EAAY;AAClD,2BAAqB,CAACqB,QAD4B;AAElD,iCAA2BI;AAFuB,KAAZ;AAAxC,KAGQD,KAHR,GAIGgC,OAJH,CADF;AAQD,CAhG4D,EAgG1D;AACDpC,EAAAA,KAAK,EAAE,IADN;AAEDC,EAAAA,QAAQ,EAAE;AAFT,CAhG0D,CAAtD;AAqGP,eAAeP,OAAf","sourcesContent":["import * as React from 'react';\nimport { useDOM } from '../../lib/dom';\nimport { classNames } from '../../lib/classNames';\nimport { AppRootContext } from './AppRootContext';\nimport { withAdaptivity, SizeType, AdaptivityProps } from '../../hoc/withAdaptivity';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { classScopingMode } from '../../lib/classScopingMode';\nimport { IconSettingsProvider } from '@vkontakte/icons';\nimport { elementScrollController, globalScrollController, ScrollContext, ScrollContextInterface } from './ScrollContext';\nimport { noop } from '../../lib/utils';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useKeyboardInputTracker } from '../../hooks/useKeyboardInputTracker';\n\n// Используйте classList, но будьте осторожны\n/* eslint-disable no-restricted-properties */\n\nexport interface AppRootProps extends React.HTMLAttributes<HTMLDivElement>, Pick<AdaptivityProps, 'sizeX' | 'hasMouse'> {\n /** @deprecated Use mode=\"embedded\" */\n embedded?: boolean;\n /** Режим встраивания */\n mode?: 'partial' | 'embedded' | 'full';\n window?: Window;\n /** Убирает классы без префикса (.Button) */\n noLegacyClasses?: boolean;\n scroll?: 'global' | 'contain';\n}\n\nconst warn = warnOnce('AppRoot');\nexport const AppRoot: React.FC<AppRootProps> = withAdaptivity(({\n children, mode: _mode, embedded: _embedded, sizeX, hasMouse, noLegacyClasses = false, scroll = 'global',\n ...props\n}: AppRootProps) => {\n // normalize mode\n const mode = _mode || (_embedded ? 'embedded' : 'full');\n const isKeyboardInputActive = useKeyboardInputTracker();\n const rootRef = React.useRef<HTMLDivElement>();\n const [portalRoot, setPortalRoot] = React.useState<HTMLDivElement>(null);\n const { window, document } = useDOM();\n\n const initialized = React.useRef(false);\n if (!initialized.current) {\n if (window && mode === 'full') {\n document.documentElement.classList.add('vkui');\n }\n classScopingMode.noConflict = noLegacyClasses;\n initialized.current = true;\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (scroll !== 'global' && mode !== 'embedded') {\n warn('Scroll modes only supported in embedded mode');\n }\n if (_mode && _embedded) {\n warn(`mode=\"${mode}\" overrides embedded`);\n }\n }\n\n // setup portal\n useIsomorphicLayoutEffect(() => {\n if (mode === 'full') {\n return noop;\n }\n\n const portal = document.createElement('div');\n portal.classList.add('vkui__portal-root');\n document.body.appendChild(portal);\n setPortalRoot(portal);\n return () => portal.parentElement.removeChild(portal);\n }, []);\n\n // setup root classes\n useIsomorphicLayoutEffect(() => {\n if (mode === 'partial') {\n return noop;\n }\n\n const parent = rootRef.current.parentElement;\n const classes = ['vkui__root'].concat(mode === 'embedded' ? 'vkui__root--embedded' : []);\n parent.classList.add(...classes);\n\n return () => {\n parent.classList.remove(...classes);\n if (mode === 'full') {\n document.documentElement.classList.remove('vkui');\n }\n };\n }, []);\n\n // adaptivity handler\n useIsomorphicLayoutEffect(() => {\n if (mode === 'partial' || sizeX !== SizeType.REGULAR) {\n return noop;\n }\n const container = mode === 'embedded' ? rootRef.current.parentElement : document.body;\n container.classList.add('vkui--sizeX-regular');\n return () => container.classList.remove('vkui--sizeX-regular');\n }, [sizeX]);\n\n const scrollController = React.useMemo<ScrollContextInterface>(\n () => scroll === 'contain' ? elementScrollController(rootRef) : globalScrollController(window, document),\n [scroll]);\n\n const content = (\n <AppRootContext.Provider value={{\n appRoot: rootRef,\n portalRoot: portalRoot,\n embedded: mode === 'embedded',\n }}>\n <ScrollContext.Provider value={scrollController}>\n <IconSettingsProvider classPrefix=\"vkui\" globalClasses={!noLegacyClasses}>\n {children}\n </IconSettingsProvider>\n </ScrollContext.Provider>\n </AppRootContext.Provider>\n );\n\n return mode === 'partial' ? content : (\n <div ref={rootRef} vkuiClass={classNames('AppRoot', {\n 'AppRoot--no-mouse': !hasMouse,\n 'AppRoot--keyboard-input': isKeyboardInputActive,\n })} {...props}>\n {content}\n </div>\n );\n}, {\n sizeX: true,\n hasMouse: true,\n});\n\nexport default AppRoot;\n"],"file":"AppRoot.js"}
1
+ {"version":3,"sources":["../../../src/components/AppRoot/AppRoot.tsx"],"names":["React","useDOM","classNames","AppRootContext","withAdaptivity","SizeType","useIsomorphicLayoutEffect","classScopingMode","IconSettingsProvider","elementScrollController","globalScrollController","ScrollContext","noop","warnOnce","useKeyboardInputTracker","useInsets","warn","AppRoot","children","_mode","mode","_embedded","embedded","sizeX","hasMouse","noLegacyClasses","scroll","props","isKeyboardInputActive","rootRef","useRef","useState","portalRoot","setPortalRoot","window","document","insets","initialized","current","documentElement","classList","add","noConflict","process","env","NODE_ENV","portal","createElement","body","appendChild","parentElement","removeChild","parent","classes","concat","remove","key","hasOwnProperty","inset","style","setProperty","removeProperty","REGULAR","container","scrollController","useMemo","content","appRoot"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { useDOM } from '../../lib/dom';\nimport { classNames } from '../../lib/classNames';\nimport { AppRootContext } from './AppRootContext';\nimport { withAdaptivity, SizeType, AdaptivityProps } from '../../hoc/withAdaptivity';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { classScopingMode } from '../../lib/classScopingMode';\nimport { IconSettingsProvider } from '@vkontakte/icons';\nimport { elementScrollController, globalScrollController, ScrollContext, ScrollContextInterface } from './ScrollContext';\nimport { noop } from '../../lib/utils';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useKeyboardInputTracker } from '../../hooks/useKeyboardInputTracker';\nimport { useInsets } from '../../hooks/useInsets';\nimport { Insets } from '@vkontakte/vk-bridge';\nimport './AppRoot.css';\n\n// Используйте classList, но будьте осторожны\n/* eslint-disable no-restricted-properties */\n\nexport interface AppRootProps extends React.HTMLAttributes<HTMLDivElement>, Pick<AdaptivityProps, 'sizeX' | 'hasMouse'> {\n /** @deprecated Use mode=\"embedded\" */\n embedded?: boolean;\n /** Режим встраивания */\n mode?: 'partial' | 'embedded' | 'full';\n window?: Window;\n /** Убирает классы без префикса (.Button) */\n noLegacyClasses?: boolean;\n scroll?: 'global' | 'contain';\n}\n\nconst warn = warnOnce('AppRoot');\nexport const AppRoot: React.FC<AppRootProps> = withAdaptivity(({\n children, mode: _mode, embedded: _embedded, sizeX, hasMouse, noLegacyClasses = false, scroll = 'global',\n ...props\n}: AppRootProps) => {\n // normalize mode\n const mode = _mode || (_embedded ? 'embedded' : 'full');\n const isKeyboardInputActive = useKeyboardInputTracker();\n const rootRef = React.useRef<HTMLDivElement>();\n const [portalRoot, setPortalRoot] = React.useState<HTMLDivElement>(null);\n const { window, document } = useDOM();\n const insets = useInsets();\n\n const initialized = React.useRef(false);\n if (!initialized.current) {\n if (window && mode === 'full') {\n document.documentElement.classList.add('vkui');\n }\n classScopingMode.noConflict = noLegacyClasses;\n initialized.current = true;\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (scroll !== 'global' && mode !== 'embedded') {\n warn('Scroll modes only supported in embedded mode');\n }\n if (_mode && _embedded) {\n warn(`mode=\"${mode}\" overrides embedded`);\n }\n }\n\n // setup portal\n useIsomorphicLayoutEffect(() => {\n if (mode === 'full') {\n return noop;\n }\n\n const portal = document.createElement('div');\n portal.classList.add('vkui__portal-root');\n document.body.appendChild(portal);\n setPortalRoot(portal);\n return () => portal.parentElement.removeChild(portal);\n }, []);\n\n // setup root classes\n useIsomorphicLayoutEffect(() => {\n if (mode === 'partial') {\n return noop;\n }\n\n const parent = rootRef.current.parentElement;\n const classes = ['vkui__root'].concat(mode === 'embedded' ? 'vkui__root--embedded' : []);\n parent.classList.add(...classes);\n\n return () => {\n parent.classList.remove(...classes);\n if (mode === 'full') {\n document.documentElement.classList.remove('vkui');\n }\n };\n }, []);\n\n // setup insets\n useIsomorphicLayoutEffect(() => {\n if (mode === 'partial') {\n return noop;\n }\n\n const parent = rootRef.current.parentElement;\n\n for (const key in insets) {\n if (insets.hasOwnProperty(key) && typeof insets[key as keyof Insets] === 'number') {\n const inset = insets[key as keyof Insets];\n parent.style.setProperty(`--safe-area-inset-${key}`, `${inset}px`);\n portalRoot && portalRoot.style.setProperty(`--safe-area-inset-${key}`, `${inset}px`);\n }\n }\n\n return () => {\n for (const key in insets) {\n if (insets.hasOwnProperty(key)) {\n parent.style.removeProperty(`--safe-area-inset-${key}`);\n portalRoot && portalRoot.style.removeProperty(`--safe-area-inset-${key}`);\n }\n }\n };\n }, [insets, portalRoot]);\n\n // adaptivity handler\n useIsomorphicLayoutEffect(() => {\n if (mode === 'partial' || sizeX !== SizeType.REGULAR) {\n return noop;\n }\n const container = mode === 'embedded' ? rootRef.current.parentElement : document.body;\n container.classList.add('vkui--sizeX-regular');\n return () => container.classList.remove('vkui--sizeX-regular');\n }, [sizeX]);\n\n const scrollController = React.useMemo<ScrollContextInterface>(\n () => scroll === 'contain' ? elementScrollController(rootRef) : globalScrollController(window, document),\n [scroll]);\n\n const content = (\n <AppRootContext.Provider value={{\n appRoot: rootRef,\n portalRoot: portalRoot,\n embedded: mode === 'embedded',\n }}>\n <ScrollContext.Provider value={scrollController}>\n <IconSettingsProvider classPrefix=\"vkui\" globalClasses={!noLegacyClasses}>\n {children}\n </IconSettingsProvider>\n </ScrollContext.Provider>\n </AppRootContext.Provider>\n );\n\n return mode === 'partial' ? content : (\n <div ref={rootRef} vkuiClass={classNames('AppRoot', {\n 'AppRoot--no-mouse': !hasMouse,\n 'AppRoot--keyboard-input': isKeyboardInputActive,\n })} {...props}>\n {content}\n </div>\n );\n}, {\n sizeX: true,\n hasMouse: true,\n});\n\nexport default AppRoot;\n"],"file":"AppRoot.js"}
@@ -77,7 +77,7 @@ var Banner = function Banner(props) {
77
77
  vkuiClass: "Banner__content"
78
78
  }, hasReactNode(header) && createScopedElement(BannerHeader, {
79
79
  size: size,
80
- Component: "h2",
80
+ Component: "span",
81
81
  vkuiClass: "Banner__header"
82
82
  }, header), hasReactNode(subheader) && createScopedElement(BannerSubheader, {
83
83
  Component: "span",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Banner/Banner.tsx"],"names":["React","getClassName","classNames","usePlatform","ANDROID","IOS","VKCOM","hasReactNode","Icon24Chevron","Icon24DismissSubstract","Icon24DismissDark","Icon24Cancel","Tappable","IconButton","Headline","Subhead","Text","Title","BannerHeader","size","restProps","BannerSubheader","Banner","props","platform","mode","imageTheme","before","asideMode","header","subheader","text","children","background","actions","onDismiss","dismissLabel","Children","count","defaultProps"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getClassName } from '../../helpers/getClassName';\nimport { classNames } from '../../lib/classNames';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { ANDROID, IOS, VKCOM } from '../../lib/platform';\nimport { hasReactNode } from '../../lib/utils';\nimport { Icon24Chevron, Icon24DismissSubstract, Icon24DismissDark, Icon24Cancel } from '@vkontakte/icons';\nimport Tappable from '../Tappable/Tappable';\nimport IconButton from '../IconButton/IconButton';\nimport Headline from '../Typography/Headline/Headline';\nimport Subhead from '../Typography/Subhead/Subhead';\nimport Text from '../Typography/Text/Text';\nimport Title from '../Typography/Title/Title';\nimport './Banner.css';\n\nexport interface BannerProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Тип баннера.\n */\n mode?: 'tint' | 'image';\n size?: 's' | 'm';\n /**\n * Тип действия в правой части баннера.\n *\n * - `dismiss` – отображается иконка крестика, при клике на неё сработает свойство `onDismiss`.\n * - `expand` – отображается иконка шеврона, которая подразумевает, что при клике на баннер можно куда-то перейти.\n */\n asideMode?: 'dismiss' | 'expand';\n /**\n * Срабатывает при клике на иконку крестика при `asideMode=\"dismiss\"`.\n */\n onDismiss?: React.MouseEventHandler<HTMLButtonElement>;\n /**\n * `aria-label` для кнопки при `asideMode=\"dismiss\". Необходим, чтобы кнопка была доступной.\n */\n dismissLabel?: string;\n /**\n * Содержимое, отображаемое в левой части баннера.\n */\n before?: React.ReactNode;\n /**\n * Заголовок. <br />\n * При использовании этого свойства рекомендуется не указывать `text`.\n */\n header?: React.ReactNode;\n /**\n * Подзаголовок. <br />\n * При использовании этого свойства рекомендуется не указывать `text`.\n */\n subheader?: React.ReactNode;\n /**\n * Текст баннера. <br />\n * Это свойство следует использовать без указания `header` и `subheader`.\n */\n text?: React.ReactNode;\n /**\n * При использовании `mode=\"image\"`.\n *\n * - `light` – в качестве фона используется светлое изображение, цвет текста в баннере будет тёмным.\n * - `dark` – в качестве фона используется тёмное изображение, цвет текста будет светлым.\n */\n imageTheme?: 'light' | 'dark';\n /**\n * При использовании `mode=\"image\"`.\n *\n * Элемент, который нужно стилизовать цветом и/или фоном. Этот элемент будет растянут на 100% ширины и высоты баннера.\n */\n background?: React.ReactNode;\n /**\n * Кнопки, отображаемые в баннере.\n *\n * - В режиме `tint` или в `image` со светлым фоном рекомендуется использовать только `<Button mode=\"primary\" />` или `<Button mode=\"tertiary\" hasHover={false} />`.\n * - В режиме `image` с тёмным фоном – `<Button mode=\"overlay_primary\" />`.\n */\n actions?: React.ReactNode;\n}\n\ninterface BannerTypographyProps extends Pick<BannerProps, 'size'> {\n Component?: React.ElementType;\n}\n\nconst BannerHeader: React.FC<BannerTypographyProps> = ({ size, ...restProps }: BannerTypographyProps) => {\n return size === 'm'\n ? <Title level=\"2\" weight=\"medium\" {...restProps} />\n : <Headline weight=\"medium\" {...restProps} />;\n};\n\nconst BannerSubheader: React.FC<BannerTypographyProps> = ({ size, ...restProps }: BannerTypographyProps) => {\n return size === 'm'\n ? <Text weight=\"regular\" {...restProps} />\n : <Subhead weight=\"regular\" {...restProps} />;\n};\n\nconst Banner: React.FC<BannerProps> = (props: BannerProps) => {\n const platform = usePlatform();\n const {\n mode, imageTheme, size, before, asideMode, header, subheader, text, children, background, actions,\n onDismiss, dismissLabel,\n ...restProps\n } = props;\n\n return (\n <section\n {...restProps}\n vkuiClass={classNames(\n getClassName('Banner', platform),\n `Banner--md-${mode}`,\n `Banner--sz-${size}`,\n {\n 'Banner--inverted': mode === 'image' && imageTheme === 'dark',\n },\n )}\n >\n <Tappable\n vkuiClass=\"Banner__in\"\n activeMode={platform === IOS ? 'opacity' : 'background'}\n disabled={asideMode !== 'expand'}\n role={asideMode === 'expand' ? 'button' : null}\n >\n {mode === 'image' && background &&\n <div aria-hidden=\"true\" vkuiClass=\"Banner__bg\">\n {background}\n </div>\n }\n\n {before && <div vkuiClass=\"Banner__before\">{before}</div>}\n\n <div vkuiClass=\"Banner__content\">\n {hasReactNode(header) && (\n <BannerHeader size={size} Component=\"h2\" vkuiClass=\"Banner__header\">{header}</BannerHeader>\n )}\n {hasReactNode(subheader) && (\n <BannerSubheader Component=\"span\" size={size} vkuiClass=\"Banner__subheader\">{subheader}</BannerSubheader>\n )}\n {hasReactNode(text) && <Text weight=\"regular\" vkuiClass=\"Banner__text\">{text}</Text>}\n {hasReactNode(actions) && React.Children.count(actions) > 0 && (\n <div vkuiClass=\"Banner__actions\">{actions}</div>\n )}\n </div>\n\n {!!asideMode && (\n <div vkuiClass=\"Banner__aside\">\n {asideMode === 'expand' && <Icon24Chevron />}\n\n {asideMode === 'dismiss' && (\n <IconButton\n aria-label={dismissLabel}\n vkuiClass=\"Banner__dismiss\"\n onClick={onDismiss}\n hoverMode=\"opacity\"\n hasActive={false}\n >\n {(platform === ANDROID || platform === VKCOM) && <Icon24Cancel />}\n {platform === IOS && (mode === 'image' ? <Icon24DismissDark /> : <Icon24DismissSubstract />)}\n </IconButton>\n )}\n </div>\n )}\n </Tappable>\n </section>\n );\n};\n\nBanner.defaultProps = {\n dismissLabel: 'Скрыть',\n mode: 'tint',\n size: 's',\n imageTheme: 'dark',\n};\n\nexport default Banner;\n"],"file":"Banner.js"}
1
+ {"version":3,"sources":["../../../src/components/Banner/Banner.tsx"],"names":["React","getClassName","classNames","usePlatform","ANDROID","IOS","VKCOM","hasReactNode","Icon24Chevron","Icon24DismissSubstract","Icon24DismissDark","Icon24Cancel","Tappable","IconButton","Headline","Subhead","Text","Title","BannerHeader","size","restProps","BannerSubheader","Banner","props","platform","mode","imageTheme","before","asideMode","header","subheader","text","children","background","actions","onDismiss","dismissLabel","Children","count","defaultProps"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getClassName } from '../../helpers/getClassName';\nimport { classNames } from '../../lib/classNames';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { ANDROID, IOS, VKCOM } from '../../lib/platform';\nimport { hasReactNode } from '../../lib/utils';\nimport { Icon24Chevron, Icon24DismissSubstract, Icon24DismissDark, Icon24Cancel } from '@vkontakte/icons';\nimport Tappable from '../Tappable/Tappable';\nimport IconButton from '../IconButton/IconButton';\nimport Headline from '../Typography/Headline/Headline';\nimport Subhead from '../Typography/Subhead/Subhead';\nimport Text from '../Typography/Text/Text';\nimport Title from '../Typography/Title/Title';\nimport './Banner.css';\n\nexport interface BannerProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Тип баннера.\n */\n mode?: 'tint' | 'image';\n size?: 's' | 'm';\n /**\n * Тип действия в правой части баннера.\n *\n * - `dismiss` – отображается иконка крестика, при клике на неё сработает свойство `onDismiss`.\n * - `expand` – отображается иконка шеврона, которая подразумевает, что при клике на баннер можно куда-то перейти.\n */\n asideMode?: 'dismiss' | 'expand';\n /**\n * Срабатывает при клике на иконку крестика при `asideMode=\"dismiss\"`.\n */\n onDismiss?: React.MouseEventHandler<HTMLButtonElement>;\n /**\n * `aria-label` для кнопки при `asideMode=\"dismiss\". Необходим, чтобы кнопка была доступной.\n */\n dismissLabel?: string;\n /**\n * Содержимое, отображаемое в левой части баннера.\n */\n before?: React.ReactNode;\n /**\n * Заголовок. <br />\n * При использовании этого свойства рекомендуется не указывать `text`.\n */\n header?: React.ReactNode;\n /**\n * Подзаголовок. <br />\n * При использовании этого свойства рекомендуется не указывать `text`.\n */\n subheader?: React.ReactNode;\n /**\n * Текст баннера. <br />\n * Это свойство следует использовать без указания `header` и `subheader`.\n */\n text?: React.ReactNode;\n /**\n * При использовании `mode=\"image\"`.\n *\n * - `light` – в качестве фона используется светлое изображение, цвет текста в баннере будет тёмным.\n * - `dark` – в качестве фона используется тёмное изображение, цвет текста будет светлым.\n */\n imageTheme?: 'light' | 'dark';\n /**\n * При использовании `mode=\"image\"`.\n *\n * Элемент, который нужно стилизовать цветом и/или фоном. Этот элемент будет растянут на 100% ширины и высоты баннера.\n */\n background?: React.ReactNode;\n /**\n * Кнопки, отображаемые в баннере.\n *\n * - В режиме `tint` или в `image` со светлым фоном рекомендуется использовать только `<Button mode=\"primary\" />` или `<Button mode=\"tertiary\" hasHover={false} />`.\n * - В режиме `image` с тёмным фоном – `<Button mode=\"overlay_primary\" />`.\n */\n actions?: React.ReactNode;\n}\n\ninterface BannerTypographyProps extends Pick<BannerProps, 'size'> {\n Component?: React.ElementType;\n}\n\nconst BannerHeader: React.FC<BannerTypographyProps> = ({ size, ...restProps }: BannerTypographyProps) => {\n return size === 'm'\n ? <Title level=\"2\" weight=\"medium\" {...restProps} />\n : <Headline weight=\"medium\" {...restProps} />;\n};\n\nconst BannerSubheader: React.FC<BannerTypographyProps> = ({ size, ...restProps }: BannerTypographyProps) => {\n return size === 'm'\n ? <Text weight=\"regular\" {...restProps} />\n : <Subhead weight=\"regular\" {...restProps} />;\n};\n\nconst Banner: React.FC<BannerProps> = (props: BannerProps) => {\n const platform = usePlatform();\n const {\n mode, imageTheme, size, before, asideMode, header, subheader, text, children, background, actions,\n onDismiss, dismissLabel,\n ...restProps\n } = props;\n\n return (\n <section\n {...restProps}\n vkuiClass={classNames(\n getClassName('Banner', platform),\n `Banner--md-${mode}`,\n `Banner--sz-${size}`,\n {\n 'Banner--inverted': mode === 'image' && imageTheme === 'dark',\n },\n )}\n >\n <Tappable\n vkuiClass=\"Banner__in\"\n activeMode={platform === IOS ? 'opacity' : 'background'}\n disabled={asideMode !== 'expand'}\n role={asideMode === 'expand' ? 'button' : null}\n >\n {mode === 'image' && background &&\n <div aria-hidden=\"true\" vkuiClass=\"Banner__bg\">\n {background}\n </div>\n }\n\n {before && <div vkuiClass=\"Banner__before\">{before}</div>}\n\n <div vkuiClass=\"Banner__content\">\n {hasReactNode(header) && (\n <BannerHeader size={size} Component=\"span\" vkuiClass=\"Banner__header\">{header}</BannerHeader>\n )}\n {hasReactNode(subheader) && (\n <BannerSubheader Component=\"span\" size={size} vkuiClass=\"Banner__subheader\">{subheader}</BannerSubheader>\n )}\n {hasReactNode(text) && <Text weight=\"regular\" vkuiClass=\"Banner__text\">{text}</Text>}\n {hasReactNode(actions) && React.Children.count(actions) > 0 && (\n <div vkuiClass=\"Banner__actions\">{actions}</div>\n )}\n </div>\n\n {!!asideMode && (\n <div vkuiClass=\"Banner__aside\">\n {asideMode === 'expand' && <Icon24Chevron />}\n\n {asideMode === 'dismiss' && (\n <IconButton\n aria-label={dismissLabel}\n vkuiClass=\"Banner__dismiss\"\n onClick={onDismiss}\n hoverMode=\"opacity\"\n hasActive={false}\n >\n {(platform === ANDROID || platform === VKCOM) && <Icon24Cancel />}\n {platform === IOS && (mode === 'image' ? <Icon24DismissDark /> : <Icon24DismissSubstract />)}\n </IconButton>\n )}\n </div>\n )}\n </Tappable>\n </section>\n );\n};\n\nBanner.defaultProps = {\n dismissLabel: 'Скрыть',\n mode: 'tint',\n size: 's',\n imageTheme: 'dark',\n};\n\nexport default Banner;\n"],"file":"Banner.js"}
@@ -6,7 +6,7 @@ import { createScopedElement } from "../../lib/jsxRuntime";
6
6
  import * as React from 'react';
7
7
  import { classNames } from "../../lib/classNames";
8
8
  import { getClassName } from "../../helpers/getClassName";
9
- import Touch from "../Touch/Touch";
9
+ import { Touch } from "../Touch/Touch";
10
10
  import { ANDROID, IOS, VKCOM } from "../../lib/platform";
11
11
  import { Icon24Reorder, Icon24ReorderIos, Icon24CheckCircleOn, Icon24CheckCircleOff, Icon24CheckBoxOff, Icon24CheckBoxOn } from '@vkontakte/icons';
12
12
  import SimpleCell from "../SimpleCell/SimpleCell";