@vkontakte/vkui 4.22.2 → 4.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +193 -30
  4. package/.cache/ts/src/components/ActionSheet/ActionSheetContext.d.ts +1 -1
  5. package/.cache/ts/src/components/ActionSheetItem/ActionSheetItem.d.ts +7 -0
  6. package/.cache/ts/src/components/AdaptivityProvider/AdaptivityContext.d.ts +5 -0
  7. package/.cache/ts/src/components/AppRoot/AppRootContext.d.ts +1 -0
  8. package/.cache/ts/src/components/AppRoot/AppRootPortal.d.ts +1 -0
  9. package/.cache/ts/src/components/ClickPopper/ClickPopper.d.ts +21 -0
  10. package/.cache/ts/src/components/ConfigProvider/ConfigProviderContext.d.ts +8 -0
  11. package/.cache/ts/src/components/Dropdown/Dropdown.d.ts +49 -0
  12. package/.cache/ts/src/components/Footer/Footer.d.ts +3 -3
  13. package/.cache/ts/src/components/HoverPopper/HoverPopper.d.ts +29 -0
  14. package/.cache/ts/src/components/Popper/Popper.d.ts +27 -0
  15. package/.cache/ts/src/components/RichTooltip/RichTooltip.d.ts +46 -0
  16. package/.cache/ts/src/components/TextTooltip/TextTooltip.d.ts +49 -0
  17. package/.cache/ts/src/hoc/withAdaptivity.d.ts +1 -0
  18. package/.cache/ts/src/hooks/usePatchChildrenRef.d.ts +6 -0
  19. package/.cache/ts/src/index.d.ts +2 -1
  20. package/.cache/ts/src/unstable/index.d.ts +8 -0
  21. package/dist/cjs/components/ActionSheet/ActionSheet.js +21 -7
  22. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  23. package/dist/cjs/components/ActionSheet/ActionSheetContext.d.ts +1 -1
  24. package/dist/cjs/components/ActionSheet/ActionSheetContext.js.map +1 -1
  25. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js +1 -3
  26. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  27. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.d.ts +7 -0
  28. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +4 -3
  29. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  30. package/dist/cjs/components/AdaptivityProvider/AdaptivityContext.d.ts +5 -0
  31. package/dist/cjs/components/AdaptivityProvider/AdaptivityContext.js +5 -1
  32. package/dist/cjs/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  33. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js +10 -5
  34. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  35. package/dist/cjs/components/AppRoot/AppRoot.js +3 -6
  36. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  37. package/dist/cjs/components/AppRoot/AppRootContext.d.ts +1 -0
  38. package/dist/cjs/components/AppRoot/AppRootContext.js.map +1 -1
  39. package/dist/cjs/components/AppRoot/AppRootPortal.d.ts +1 -0
  40. package/dist/cjs/components/AppRoot/AppRootPortal.js +7 -3
  41. package/dist/cjs/components/AppRoot/AppRootPortal.js.map +1 -1
  42. package/dist/cjs/components/Cell/Cell.js +3 -1
  43. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  44. package/dist/cjs/components/ClickPopper/ClickPopper.d.ts +21 -0
  45. package/dist/cjs/components/ClickPopper/ClickPopper.js +92 -0
  46. package/dist/cjs/components/ClickPopper/ClickPopper.js.map +1 -0
  47. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.d.ts +8 -0
  48. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  49. package/dist/cjs/components/Dropdown/Dropdown.d.ts +49 -0
  50. package/dist/cjs/components/Dropdown/Dropdown.js +56 -0
  51. package/dist/cjs/components/Dropdown/Dropdown.js.map +1 -0
  52. package/dist/cjs/components/Footer/Footer.d.ts +3 -3
  53. package/dist/cjs/components/Footer/Footer.js +2 -3
  54. package/dist/cjs/components/Footer/Footer.js.map +1 -1
  55. package/dist/cjs/components/HoverPopper/HoverPopper.d.ts +29 -0
  56. package/dist/cjs/components/HoverPopper/HoverPopper.js +97 -0
  57. package/dist/cjs/components/HoverPopper/HoverPopper.js.map +1 -0
  58. package/dist/cjs/components/Popper/Popper.d.ts +27 -0
  59. package/dist/cjs/components/Popper/Popper.js +153 -0
  60. package/dist/cjs/components/Popper/Popper.js.map +1 -0
  61. package/dist/cjs/components/RichTooltip/RichTooltip.d.ts +46 -0
  62. package/dist/cjs/components/RichTooltip/RichTooltip.js +47 -0
  63. package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -0
  64. package/dist/cjs/components/Tappable/Tappable.js +6 -4
  65. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  66. package/dist/cjs/components/TextTooltip/TextTooltip.d.ts +49 -0
  67. package/dist/cjs/components/TextTooltip/TextTooltip.js +57 -0
  68. package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -0
  69. package/dist/cjs/hoc/withAdaptivity.d.ts +1 -0
  70. package/dist/cjs/hoc/withAdaptivity.js +5 -2
  71. package/dist/cjs/hoc/withAdaptivity.js.map +1 -1
  72. package/dist/cjs/hooks/usePatchChildrenRef.d.ts +6 -0
  73. package/dist/cjs/hooks/usePatchChildrenRef.js +38 -0
  74. package/dist/cjs/hooks/usePatchChildrenRef.js.map +1 -0
  75. package/dist/cjs/index.d.ts +2 -1
  76. package/dist/cjs/index.js +2 -2
  77. package/dist/cjs/index.js.map +1 -1
  78. package/dist/cjs/unstable/index.d.ts +8 -0
  79. package/dist/cjs/unstable/index.js +32 -0
  80. package/dist/cjs/unstable/index.js.map +1 -1
  81. package/dist/components/ActionSheet/ActionSheet.js +22 -8
  82. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  83. package/dist/components/ActionSheet/ActionSheetContext.d.ts +1 -1
  84. package/dist/components/ActionSheet/ActionSheetContext.js.map +1 -1
  85. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +1 -3
  86. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  87. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +7 -0
  88. package/dist/components/ActionSheetItem/ActionSheetItem.js +4 -3
  89. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  90. package/dist/components/AdaptivityProvider/AdaptivityContext.d.ts +5 -0
  91. package/dist/components/AdaptivityProvider/AdaptivityContext.js +4 -1
  92. package/dist/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  93. package/dist/components/AdaptivityProvider/AdaptivityProvider.js +11 -6
  94. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  95. package/dist/components/AppRoot/AppRoot.js +3 -6
  96. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  97. package/dist/components/AppRoot/AppRootContext.d.ts +1 -0
  98. package/dist/components/AppRoot/AppRootContext.js.map +1 -1
  99. package/dist/components/AppRoot/AppRootPortal.d.ts +1 -0
  100. package/dist/components/AppRoot/AppRootPortal.js +7 -3
  101. package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
  102. package/dist/components/Cell/Cell.js +3 -1
  103. package/dist/components/Cell/Cell.js.map +1 -1
  104. package/dist/components/ClickPopper/ClickPopper.d.ts +21 -0
  105. package/dist/components/ClickPopper/ClickPopper.js +67 -0
  106. package/dist/components/ClickPopper/ClickPopper.js.map +1 -0
  107. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +8 -0
  108. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  109. package/dist/components/Dropdown/Dropdown.d.ts +49 -0
  110. package/dist/components/Dropdown/Dropdown.js +38 -0
  111. package/dist/components/Dropdown/Dropdown.js.map +1 -0
  112. package/dist/components/Footer/Footer.d.ts +3 -3
  113. package/dist/components/Footer/Footer.js +1 -4
  114. package/dist/components/Footer/Footer.js.map +1 -1
  115. package/dist/components/HoverPopper/HoverPopper.d.ts +29 -0
  116. package/dist/components/HoverPopper/HoverPopper.js +73 -0
  117. package/dist/components/HoverPopper/HoverPopper.js.map +1 -0
  118. package/dist/components/Popper/Popper.d.ts +27 -0
  119. package/dist/components/Popper/Popper.js +127 -0
  120. package/dist/components/Popper/Popper.js.map +1 -0
  121. package/dist/components/RichTooltip/RichTooltip.d.ts +46 -0
  122. package/dist/components/RichTooltip/RichTooltip.js +26 -0
  123. package/dist/components/RichTooltip/RichTooltip.js.map +1 -0
  124. package/dist/components/Tappable/Tappable.js +7 -5
  125. package/dist/components/Tappable/Tappable.js.map +1 -1
  126. package/dist/components/TextTooltip/TextTooltip.d.ts +49 -0
  127. package/dist/components/TextTooltip/TextTooltip.js +34 -0
  128. package/dist/components/TextTooltip/TextTooltip.js.map +1 -0
  129. package/dist/components.css +1 -1
  130. package/dist/components.css.map +1 -1
  131. package/dist/cssm/components/ActionSheet/ActionSheet.js +22 -8
  132. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  133. package/dist/cssm/components/ActionSheet/ActionSheetContext.js.map +1 -1
  134. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +1 -3
  135. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  136. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +4 -3
  137. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  138. package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js +4 -1
  139. package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  140. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +11 -6
  141. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  142. package/dist/cssm/components/AppRoot/AppRoot.js +3 -6
  143. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  144. package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
  145. package/dist/cssm/components/AppRoot/AppRootPortal.js +7 -3
  146. package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
  147. package/dist/cssm/components/Cell/Cell.js +3 -1
  148. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  149. package/dist/cssm/components/ClickPopper/ClickPopper.js +67 -0
  150. package/dist/cssm/components/ClickPopper/ClickPopper.js.map +1 -0
  151. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  152. package/dist/cssm/components/Dropdown/Dropdown.css +1 -0
  153. package/dist/cssm/components/Dropdown/Dropdown.js +41 -0
  154. package/dist/cssm/components/Dropdown/Dropdown.js.map +1 -0
  155. package/dist/cssm/components/Footer/Footer.js +1 -4
  156. package/dist/cssm/components/Footer/Footer.js.map +1 -1
  157. package/dist/cssm/components/HoverPopper/HoverPopper.js +73 -0
  158. package/dist/cssm/components/HoverPopper/HoverPopper.js.map +1 -0
  159. package/dist/cssm/components/Popper/Popper.css +1 -0
  160. package/dist/cssm/components/Popper/Popper.js +128 -0
  161. package/dist/cssm/components/Popper/Popper.js.map +1 -0
  162. package/dist/cssm/components/RichTooltip/RichTooltip.css +1 -0
  163. package/dist/cssm/components/RichTooltip/RichTooltip.js +29 -0
  164. package/dist/cssm/components/RichTooltip/RichTooltip.js.map +1 -0
  165. package/dist/cssm/components/Tappable/Tappable.js +7 -5
  166. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  167. package/dist/cssm/components/TextTooltip/TextTooltip.css +1 -0
  168. package/dist/cssm/components/TextTooltip/TextTooltip.js +37 -0
  169. package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -0
  170. package/dist/cssm/hoc/withAdaptivity.js +5 -2
  171. package/dist/cssm/hoc/withAdaptivity.js.map +1 -1
  172. package/dist/cssm/hooks/usePatchChildrenRef.js +21 -0
  173. package/dist/cssm/hooks/usePatchChildrenRef.js.map +1 -0
  174. package/dist/cssm/index.js +1 -1
  175. package/dist/cssm/index.js.map +1 -1
  176. package/dist/cssm/styles/animations.css +1 -1
  177. package/dist/cssm/styles/common.css +1 -1
  178. package/dist/cssm/styles/components.css +1 -1
  179. package/dist/cssm/styles/unstable.css +1 -1
  180. package/dist/cssm/unstable/index.js +4 -0
  181. package/dist/cssm/unstable/index.js.map +1 -1
  182. package/dist/hoc/withAdaptivity.d.ts +1 -0
  183. package/dist/hoc/withAdaptivity.js +5 -2
  184. package/dist/hoc/withAdaptivity.js.map +1 -1
  185. package/dist/hooks/usePatchChildrenRef.d.ts +6 -0
  186. package/dist/hooks/usePatchChildrenRef.js +21 -0
  187. package/dist/hooks/usePatchChildrenRef.js.map +1 -0
  188. package/dist/index.d.ts +2 -1
  189. package/dist/index.js +1 -1
  190. package/dist/index.js.map +1 -1
  191. package/dist/unstable/index.d.ts +8 -0
  192. package/dist/unstable/index.js +4 -0
  193. package/dist/unstable/index.js.map +1 -1
  194. package/dist/unstable.css +1 -1
  195. package/dist/unstable.css.map +1 -1
  196. package/dist/vkui.css +1 -1
  197. package/dist/vkui.css.map +1 -1
  198. package/package.json +2 -2
  199. package/src/components/ActionSheet/ActionSheet.tsx +16 -9
  200. package/src/components/ActionSheet/ActionSheetContext.ts +1 -1
  201. package/src/components/ActionSheet/ActionSheetDropdownDesktop.tsx +1 -3
  202. package/src/components/ActionSheetItem/ActionSheetItem.tsx +10 -2
  203. package/src/components/AdaptivityProvider/AdaptivityContext.tsx +8 -0
  204. package/src/components/AdaptivityProvider/AdaptivityProvider.tsx +8 -6
  205. package/src/components/AdaptivityProvider/Readme.md +3 -3
  206. package/src/components/AppRoot/AppRoot.tsx +4 -5
  207. package/src/components/AppRoot/AppRootContext.ts +1 -0
  208. package/src/components/AppRoot/AppRootPortal.tsx +5 -3
  209. package/src/components/Cell/Cell.tsx +2 -1
  210. package/src/components/ChipsSelect/Readme.md +1 -1
  211. package/src/components/ClickPopper/ClickPopper.tsx +82 -0
  212. package/src/components/ConfigProvider/ConfigProviderContext.tsx +8 -0
  213. package/src/components/Dropdown/Dropdown.css +19 -0
  214. package/src/components/Dropdown/Dropdown.tsx +74 -0
  215. package/src/components/Dropdown/Readme.md +39 -0
  216. package/src/components/Footer/Footer.tsx +6 -4
  217. package/src/components/HoverPopper/HoverPopper.tsx +100 -0
  218. package/src/components/PanelHeader/Readme.md +4 -0
  219. package/src/components/Popper/Popper.css +39 -0
  220. package/src/components/Popper/Popper.tsx +147 -0
  221. package/src/components/Popper/Readme.md +23 -0
  222. package/src/components/RichTooltip/Readme.md +55 -0
  223. package/src/components/RichTooltip/RichTooltip.css +10 -0
  224. package/src/components/RichTooltip/RichTooltip.tsx +70 -0
  225. package/src/components/Tappable/Tappable.tsx +5 -4
  226. package/src/components/TextTooltip/Readme.md +7 -0
  227. package/src/components/TextTooltip/TextTooltip.css +12 -0
  228. package/src/components/TextTooltip/TextTooltip.tsx +76 -0
  229. package/src/components/Tooltip/Readme.md +2 -0
  230. package/src/hoc/withAdaptivity.tsx +5 -1
  231. package/src/hooks/usePatchChildrenRef.ts +24 -0
  232. package/src/index.ts +2 -1
  233. package/src/styles/animations.css +5 -0
  234. package/src/styles/common.css +7 -2
  235. package/src/styles/unstable.css +4 -0
  236. package/src/unstable/index.ts +12 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ActionSheet/ActionSheetDropdownDesktop.tsx"],"names":["React","getClassName","classNames","useDOM","usePlatform","useAdaptivity","warnOnce","useIsomorphicLayoutEffect","useEventListener","FocusTrap","warn","getEl","ref","current","ActionSheetDropdownDesktop","children","toggleRef","closing","popupDirection","onClose","restProps","window","document","platform","sizeY","elementRef","useRef","useState","left","top","opacity","pointerEvents","dropdownStyles","setDropdownStyles","toggleEl","process","env","NODE_ENV","toggleRect","getBoundingClientRect","elementRect","isTop","width","pageXOffset","pageYOffset","height","bodyClickListener","e","dropdownElement","contains","target","useEffect","setTimeout","add","body","onClick","useCallback","stopPropagation"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,YAAT;AACA,SAASC,UAAT;AACA,SAASC,MAAT;AACA,SAASC,WAAT;AACA,SAASC,aAAT;AACA,SAASC,QAAT;AACA,SAASC,yBAAT;AACA,SAASC,gBAAT;AAEA,SAASC,SAAT;AAGA,IAAMC,IAAI,GAAGJ,QAAQ,CAAC,aAAD,CAArB;;AACA,SAASK,KAAT,CAAeC,GAAf,EAAkF;AAChF,SAAOA,GAAG,IAAI,aAAaA,GAApB,GAA0BA,GAAG,CAACC,OAA9B,GAAwCD,GAA/C;AACD;;AAED,OAAO,IAAME,0BAAyD,GAAG,SAA5DA,0BAA4D,OAOnE;AAAA,MANJC,QAMI,QANJA,QAMI;AAAA,MALJC,SAKI,QALJA,SAKI;AAAA,MAJJC,OAII,QAJJA,OAII;AAAA,MAHJC,cAGI,QAHJA,cAGI;AAAA,MAFJC,OAEI,QAFJA,OAEI;AAAA,MADDC,SACC;;AACJ,gBAA6BjB,MAAM,EAAnC;AAAA,MAAQkB,MAAR,WAAQA,MAAR;AAAA,MAAgBC,QAAhB,WAAgBA,QAAhB;;AACA,MAAMC,QAAQ,GAAGnB,WAAW,EAA5B;;AACA,uBAAkBC,aAAa,EAA/B;AAAA,MAAQmB,KAAR,kBAAQA,KAAR;;AACA,MAAMC,UAAU,GAAGzB,KAAK,CAAC0B,MAAN,EAAnB;;AAEA,wBAA4C1B,KAAK,CAAC2B,QAAN,CAAoC;AAC9EC,IAAAA,IAAI,EAAE,CADwE;AAE9EC,IAAAA,GAAG,EAAE,CAFyE;AAG9EC,IAAAA,OAAO,EAAE,CAHqE;AAI9EC,IAAAA,aAAa,EAAE;AAJ+D,GAApC,CAA5C;AAAA;AAAA,MAAOC,cAAP;AAAA,MAAuBC,iBAAvB;;AAMA1B,EAAAA,yBAAyB,CAAC,YAAM;AAC9B,QAAM2B,QAAQ,GAAGvB,KAAK,CAACK,SAAD,CAAtB;;AACA,QAAI,CAACkB,QAAL,EAAe;AACb,UAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;AAC1C3B,QAAAA,IAAI,CAAC,sBAAD,CAAJ;AACD;;AACD;AACD;;AAED,QAAM4B,UAAU,GAAGJ,QAAQ,CAACK,qBAAT,EAAnB;AACA,QAAMC,WAAW,GAAGf,UAAU,CAACZ,OAAX,CAAmB0B,qBAAnB,EAApB;AACA,QAAME,KAAK,GAAGvB,cAAc,KAAK,KAAnB,IAA4B,OAAOA,cAAP,KAA0B,UAA1B,IAAwCA,cAAc,CAACO,UAAD,CAAd,KAA+B,KAAjH;AAEAQ,IAAAA,iBAAiB,CAAC;AAChBL,MAAAA,IAAI,EAAEU,UAAU,CAACV,IAAX,GAAkBU,UAAU,CAACI,KAA7B,GAAqCF,WAAW,CAACE,KAAjD,GAAyDrB,MAAM,CAACsB,WADtD;AAEhBd,MAAAA,GAAG,EAAES,UAAU,CAACT,GAAX,GAAiBR,MAAM,CAACuB,WAAxB,IAAuCH,KAAK,GAAG,CAACD,WAAW,CAACK,MAAhB,GAAyBP,UAAU,CAACO,MAAhF;AAFW,KAAD,CAAjB;AAID,GAjBwB,EAiBtB,CAAC7B,SAAD,CAjBsB,CAAzB;AAmBA,MAAM8B,iBAAiB,GAAGtC,gBAAgB,CAAC,OAAD,EAAU,UAACuC,CAAD,EAAmB;AACrE,QAAMC,eAAe,GAAGvB,UAAH,aAAGA,UAAH,uBAAGA,UAAU,CAAEZ,OAApC;;AACA,QAAImC,eAAe,IAAI,CAACA,eAAe,CAACC,QAAhB,CAAyBF,CAAC,CAACG,MAA3B,CAAxB,EAAoE;AAClE/B,MAAAA,OAAO;AACR;AACF,GALyC,CAA1C;AAOAnB,EAAAA,KAAK,CAACmD,SAAN,CAAgB,YAAM;AACpBC,IAAAA,UAAU,CAAC,YAAM;AACfN,MAAAA,iBAAiB,CAACO,GAAlB,CAAsB/B,QAAQ,CAACgC,IAA/B;AACD,KAFS,CAAV;AAGD,GAJD,EAIG,EAJH;AAMA,MAAMC,OAAO,GAAGvD,KAAK,CAACwD,WAAN,CAAkB,UAACT,CAAD;AAAA,WAAOA,CAAC,CAACU,eAAF,EAAP;AAAA,GAAlB,EAA8C,EAA9C,CAAhB;AAEA,SACE,oBAAC,SAAD;AACE,IAAA,OAAO,EAAEtC;AADX,KAEMC,SAFN;AAGE,IAAA,UAAU,EAAEK,UAHd;AAIE,IAAA,OAAO,EAAE8B,OAJX;AAKE,IAAA,KAAK,EAAEvB,cALT;AAME,IAAA,SAAS,EAAE9B,UAAU,CAACD,YAAY,CAAC,aAAD,EAAgBsB,QAAhB,CAAb,EAAwC,sBAAxC,EAAgE;AACnF,8BAAwBN;AAD2D,KAAhE,+BAEIO,KAFJ;AANvB,MAUGT,QAVH,CADF;AAcD,CAnEM","sourcesContent":["import * as React from 'react';\nimport { getClassName } from '../../helpers/getClassName';\nimport { classNames } from '../../lib/classNames';\nimport { useDOM } from '../../lib/dom';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { SharedDropdownProps } from './types';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport './ActionSheet.css';\n\nconst warn = warnOnce('ActionSheet');\nfunction getEl(ref: SharedDropdownProps['toggleRef']): Element | null | undefined {\n return ref && 'current' in ref ? ref.current : ref as Element | null | undefined;\n}\n\nexport const ActionSheetDropdownDesktop: React.FC<SharedDropdownProps> = ({\n children,\n toggleRef,\n closing,\n popupDirection,\n onClose,\n ...restProps\n}) => {\n const { window, document } = useDOM();\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n const elementRef = React.useRef<HTMLDivElement>();\n\n const [dropdownStyles, setDropdownStyles] = React.useState<React.CSSProperties>({\n left: 0,\n top: 0,\n opacity: 0,\n pointerEvents: 'none',\n });\n useIsomorphicLayoutEffect(() => {\n const toggleEl = getEl(toggleRef);\n if (!toggleEl) {\n if (process.env.NODE_ENV === 'development') {\n warn('toggleRef not passed');\n }\n return;\n }\n\n const toggleRect = toggleEl.getBoundingClientRect();\n const elementRect = elementRef.current.getBoundingClientRect();\n const isTop = popupDirection === 'top' || typeof popupDirection === 'function' && popupDirection(elementRef) === 'top';\n\n setDropdownStyles({\n left: toggleRect.left + toggleRect.width - elementRect.width + window.pageXOffset,\n top: toggleRect.top + window.pageYOffset + (isTop ? -elementRect.height : toggleRect.height),\n });\n }, [toggleRef]);\n\n const bodyClickListener = useEventListener('click', (e: MouseEvent) => {\n const dropdownElement = elementRef?.current;\n if (dropdownElement && !dropdownElement.contains(e.target as Node)) {\n onClose();\n }\n });\n\n React.useEffect(() => {\n setTimeout(() => {\n bodyClickListener.add(document.body);\n });\n }, []);\n\n const onClick = React.useCallback((e) => e.stopPropagation(), []);\n\n return (\n <FocusTrap\n onClose={onClose}\n {...restProps}\n getRootRef={elementRef}\n onClick={onClick}\n style={dropdownStyles}\n vkuiClass={classNames(getClassName('ActionSheet', platform), 'ActionSheet--desktop', {\n 'ActionSheet--closing': closing,\n }, `ActionSheet--sizeY-${sizeY}`)}\n >\n {children}\n </FocusTrap>\n );\n};\n"],"file":"ActionSheetDropdownDesktop.js"}
1
+ {"version":3,"sources":["../../../src/components/ActionSheet/ActionSheetDropdownDesktop.tsx"],"names":["React","getClassName","classNames","useDOM","usePlatform","useAdaptivity","warnOnce","useIsomorphicLayoutEffect","useEventListener","FocusTrap","warn","getEl","ref","current","ActionSheetDropdownDesktop","children","toggleRef","closing","popupDirection","onClose","restProps","window","document","platform","sizeY","elementRef","useRef","useState","left","top","opacity","pointerEvents","dropdownStyles","setDropdownStyles","toggleEl","process","env","NODE_ENV","toggleRect","getBoundingClientRect","elementRect","isTop","width","pageXOffset","pageYOffset","height","bodyClickListener","e","dropdownElement","contains","target","useEffect","setTimeout","add","body","onClick","useCallback","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getClassName } from '../../helpers/getClassName';\nimport { classNames } from '../../lib/classNames';\nimport { useDOM } from '../../lib/dom';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { SharedDropdownProps } from './types';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport './ActionSheet.css';\n\nconst warn = warnOnce('ActionSheet');\nfunction getEl(ref: SharedDropdownProps['toggleRef']): Element | null | undefined {\n return ref && 'current' in ref ? ref.current : ref as Element | null | undefined;\n}\n\nexport const ActionSheetDropdownDesktop: React.FC<SharedDropdownProps> = ({\n children,\n toggleRef,\n closing,\n popupDirection,\n onClose,\n ...restProps\n}) => {\n const { window, document } = useDOM();\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n const elementRef = React.useRef<HTMLDivElement>();\n\n const [dropdownStyles, setDropdownStyles] = React.useState<React.CSSProperties>({\n left: 0,\n top: 0,\n opacity: 0,\n pointerEvents: 'none',\n });\n useIsomorphicLayoutEffect(() => {\n const toggleEl = getEl(toggleRef);\n if (!toggleEl) {\n if (process.env.NODE_ENV === 'development') {\n warn('toggleRef not passed');\n }\n return;\n }\n\n const toggleRect = toggleEl.getBoundingClientRect();\n const elementRect = elementRef.current.getBoundingClientRect();\n const isTop = popupDirection === 'top' || typeof popupDirection === 'function' && popupDirection(elementRef) === 'top';\n\n setDropdownStyles({\n left: toggleRect.left + toggleRect.width - elementRect.width + window.pageXOffset,\n top: toggleRect.top + window.pageYOffset + (isTop ? -elementRect.height : toggleRect.height),\n });\n }, [toggleRef]);\n\n const bodyClickListener = useEventListener('click', (e: MouseEvent) => {\n const dropdownElement = elementRef?.current;\n if (dropdownElement && !dropdownElement.contains(e.target as Node)) {\n onClose();\n }\n });\n\n React.useEffect(() => {\n setTimeout(() => {\n bodyClickListener.add(document.body);\n });\n }, []);\n\n const onClick = React.useCallback((e) => e.stopPropagation(), []);\n\n return (\n <FocusTrap\n onClose={onClose}\n {...restProps}\n getRootRef={elementRef}\n onClick={onClick}\n style={dropdownStyles}\n vkuiClass={classNames(getClassName('ActionSheet', platform), 'ActionSheet--desktop', `ActionSheet--sizeY-${sizeY}`)}\n >\n {children}\n </FocusTrap>\n );\n};\n"],"file":"ActionSheetDropdownDesktop.js"}
@@ -9,6 +9,13 @@ export interface ActionSheetItemProps extends React.HTMLAttributes<HTMLElement>,
9
9
  autoclose?: boolean;
10
10
  selectable?: boolean;
11
11
  disabled?: boolean;
12
+ /**
13
+ * Если autoclose === true, onClick будет вызван после завершения анимации скрытия и после вызова onClose.
14
+ * Из этого следует, что в объекте события значения полей типа `currentTarget` будут не определены.
15
+ * Если вам нужен объект события именно на момент клика, используйте `onImmediateClick`.
16
+ */
17
+ onClick?: React.MouseEventHandler<HTMLElement>;
18
+ onImmediateClick?: React.MouseEventHandler<HTMLElement>;
12
19
  }
13
20
  declare const _default: React.FC<ActionSheetItemProps>;
14
21
  export default _default;
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["children", "autoclose", "mode", "meta", "subtitle", "before", "selectable", "value", "name", "checked", "defaultChecked", "onChange", "onClick", "sizeY"];
3
+ var _excluded = ["children", "autoclose", "mode", "meta", "subtitle", "before", "selectable", "value", "name", "checked", "defaultChecked", "onChange", "onClick", "sizeY", "onImmediateClick"];
4
4
  import { createScopedElement } from "../../lib/jsxRuntime";
5
5
  import * as React from 'react';
6
6
  import { classNames } from "../../lib/classNames";
@@ -32,6 +32,7 @@ var ActionSheetItem = function ActionSheetItem(_ref) {
32
32
  onChange = _ref.onChange,
33
33
  onClick = _ref.onClick,
34
34
  sizeY = _ref.sizeY,
35
+ onImmediateClick = _ref.onImmediateClick,
35
36
  restProps = _objectWithoutProperties(_ref, _excluded);
36
37
 
37
38
  var platform = usePlatform();
@@ -51,7 +52,7 @@ var ActionSheetItem = function ActionSheetItem(_ref) {
51
52
 
52
53
  var isCompact = hasReactNode(subtitle) || hasReactNode(meta) || selectable;
53
54
  return createScopedElement(Tappable, _extends({}, restProps, {
54
- onClick: selectable ? onClick : onItemClick(onClick, autoclose),
55
+ onClick: selectable ? onClick : onItemClick(onClick, onImmediateClick, autoclose),
55
56
  activeMode: "ActionSheetItem--active",
56
57
  vkuiClass: classNames(getClassName('ActionSheetItem', platform), "ActionSheetItem--".concat(mode), "ActionSheetItem--sizeY-".concat(sizeY), {
57
58
  'ActionSheetItem--compact': isCompact,
@@ -94,7 +95,7 @@ var ActionSheetItem = function ActionSheetItem(_ref) {
94
95
  name: name,
95
96
  value: value,
96
97
  onChange: onChange,
97
- onClick: onItemClick(noop, autoclose),
98
+ onClick: onItemClick(noop, noop, autoclose),
98
99
  defaultChecked: defaultChecked,
99
100
  checked: checked,
100
101
  disabled: restProps.disabled
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ActionSheetItem/ActionSheetItem.tsx"],"names":["React","classNames","getClassName","Tappable","usePlatform","hasReactNode","noop","Subhead","Title","Text","ANDROID","VKCOM","Icon16Done","Icon24Done","ActionSheetContext","Caption","withAdaptivity","SizeType","ActionSheetItem","children","autoclose","mode","meta","subtitle","before","selectable","value","name","checked","defaultChecked","onChange","onClick","sizeY","restProps","platform","useContext","onItemClick","isDesktop","Component","href","isCompact","COMPACT","disabled","defaultProps"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { classNames } from '../../lib/classNames';\nimport { getClassName } from '../../helpers/getClassName';\nimport Tappable from '../Tappable/Tappable';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { hasReactNode, noop } from '../../lib/utils';\nimport Subhead from '../Typography/Subhead/Subhead';\nimport Title from '../Typography/Title/Title';\nimport Text from '../Typography/Text/Text';\nimport { ANDROID, VKCOM } from '../../lib/platform';\nimport { Icon16Done, Icon24Done } from '@vkontakte/icons';\nimport { ActionSheetContext } from '../ActionSheet/ActionSheetContext';\nimport Caption from '../Typography/Caption/Caption';\nimport { withAdaptivity, AdaptivityProps, SizeType } from '../../hoc/withAdaptivity';\nimport './ActionSheetItem.css';\n\nexport interface ActionSheetItemProps extends\n React.HTMLAttributes<HTMLElement>,\n React.AnchorHTMLAttributes<HTMLElement>,\n Pick<React.InputHTMLAttributes<HTMLInputElement>, 'name' | 'checked' | 'value'>,\n AdaptivityProps {\n mode?: 'default' | 'destructive' | 'cancel';\n before?: React.ReactNode;\n meta?: React.ReactNode;\n subtitle?: React.ReactNode;\n autoclose?: boolean;\n selectable?: boolean;\n disabled?: boolean;\n}\n\nconst ActionSheetItem: React.FC<ActionSheetItemProps> = ({\n children,\n autoclose,\n mode,\n meta,\n subtitle,\n before,\n selectable,\n value,\n name,\n checked,\n defaultChecked,\n onChange,\n onClick,\n sizeY,\n ...restProps\n}: ActionSheetItemProps) => {\n const platform = usePlatform();\n const { onItemClick = () => noop, isDesktop } = React.useContext(ActionSheetContext);\n\n let Component: React.ElementType = restProps.href ? 'a' : 'div';\n\n if (selectable) {\n Component = 'label';\n }\n\n const isCompact = hasReactNode(subtitle) || hasReactNode(meta) || selectable;\n\n return (\n <Tappable\n {...restProps}\n onClick={selectable ? onClick : onItemClick(onClick, autoclose)}\n activeMode=\"ActionSheetItem--active\"\n vkuiClass={\n classNames(\n getClassName('ActionSheetItem', platform),\n `ActionSheetItem--${mode}`,\n `ActionSheetItem--sizeY-${sizeY}`,\n {\n 'ActionSheetItem--compact': isCompact,\n 'ActionSheetItem--desktop': isDesktop,\n 'ActionSheetItem--withSubtitle': hasReactNode(subtitle),\n },\n )\n }\n Component={Component}\n >\n {hasReactNode(before) && <div vkuiClass=\"ActionSheetItem__before\">{before}</div>}\n <div vkuiClass=\"ActionSheetItem__container\">\n <div vkuiClass=\"ActionSheetItem__content\">\n {sizeY === SizeType.COMPACT ?\n <React.Fragment>\n <Text\n weight={mode === 'cancel' ? 'medium' : 'regular'}\n vkuiClass=\"ActionSheetItem__children\"\n >\n {children}\n </Text>\n {hasReactNode(meta) &&\n <Text\n weight=\"regular\"\n vkuiClass=\"ActionSheetItem__meta\"\n >\n {meta}\n </Text>\n }\n </React.Fragment>\n :\n <React.Fragment>\n <Title\n weight={mode === 'cancel' ? 'medium' : 'regular'}\n level={isCompact || hasReactNode(before) || platform === ANDROID ? '3' : '2'}\n vkuiClass=\"ActionSheetItem__children\"\n >\n {children}\n </Title>\n {hasReactNode(meta) &&\n <Title\n weight=\"regular\"\n level={isCompact || hasReactNode(before) || platform === ANDROID ? '3' : '2'}\n vkuiClass=\"ActionSheetItem__meta\"\n >\n {meta}\n </Title>\n }\n </React.Fragment>\n }\n </div>\n {hasReactNode(subtitle) && (sizeY === SizeType.COMPACT ?\n <Caption weight=\"regular\" vkuiClass=\"ActionSheetItem__subtitle\" level=\"1\">{subtitle}</Caption>\n :\n <Subhead weight=\"regular\" vkuiClass=\"ActionSheetItem__subtitle\">{subtitle}</Subhead>\n )}\n </div>\n {selectable &&\n <div vkuiClass=\"ActionSheetItem__after\">\n <input\n type=\"radio\"\n vkuiClass=\"ActionSheetItem__radio\"\n name={name}\n value={value}\n onChange={onChange}\n onClick={onItemClick(noop, autoclose)}\n defaultChecked={defaultChecked}\n checked={checked}\n disabled={restProps.disabled}\n />\n <div vkuiClass=\"ActionSheetItem__marker\">\n {platform === VKCOM ? <Icon24Done /> : <Icon16Done />}\n </div>\n </div>\n }\n </Tappable>\n );\n};\n\nActionSheetItem.defaultProps = {\n mode: 'default',\n};\n\nexport default withAdaptivity(ActionSheetItem, { sizeY: true });\n"],"file":"ActionSheetItem.js"}
1
+ {"version":3,"sources":["../../../src/components/ActionSheetItem/ActionSheetItem.tsx"],"names":["React","classNames","getClassName","Tappable","usePlatform","hasReactNode","noop","Subhead","Title","Text","ANDROID","VKCOM","Icon16Done","Icon24Done","ActionSheetContext","Caption","withAdaptivity","SizeType","ActionSheetItem","children","autoclose","mode","meta","subtitle","before","selectable","value","name","checked","defaultChecked","onChange","onClick","sizeY","onImmediateClick","restProps","platform","useContext","onItemClick","isDesktop","Component","href","isCompact","COMPACT","disabled","defaultProps"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { classNames } from '../../lib/classNames';\nimport { getClassName } from '../../helpers/getClassName';\nimport Tappable from '../Tappable/Tappable';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { hasReactNode, noop } from '../../lib/utils';\nimport Subhead from '../Typography/Subhead/Subhead';\nimport Title from '../Typography/Title/Title';\nimport Text from '../Typography/Text/Text';\nimport { ANDROID, VKCOM } from '../../lib/platform';\nimport { Icon16Done, Icon24Done } from '@vkontakte/icons';\nimport { ActionSheetContext } from '../ActionSheet/ActionSheetContext';\nimport Caption from '../Typography/Caption/Caption';\nimport { withAdaptivity, AdaptivityProps, SizeType } from '../../hoc/withAdaptivity';\nimport './ActionSheetItem.css';\n\nexport interface ActionSheetItemProps extends\n React.HTMLAttributes<HTMLElement>,\n React.AnchorHTMLAttributes<HTMLElement>,\n Pick<React.InputHTMLAttributes<HTMLInputElement>, 'name' | 'checked' | 'value'>,\n AdaptivityProps {\n mode?: 'default' | 'destructive' | 'cancel';\n before?: React.ReactNode;\n meta?: React.ReactNode;\n subtitle?: React.ReactNode;\n autoclose?: boolean;\n selectable?: boolean;\n disabled?: boolean;\n /**\n * Если autoclose === true, onClick будет вызван после завершения анимации скрытия и после вызова onClose.\n * Из этого следует, что в объекте события значения полей типа `currentTarget` будут не определены.\n * Если вам нужен объект события именно на момент клика, используйте `onImmediateClick`.\n */\n onClick?: React.MouseEventHandler<HTMLElement>;\n onImmediateClick?: React.MouseEventHandler<HTMLElement>;\n}\n\nconst ActionSheetItem: React.FC<ActionSheetItemProps> = ({\n children,\n autoclose,\n mode,\n meta,\n subtitle,\n before,\n selectable,\n value,\n name,\n checked,\n defaultChecked,\n onChange,\n onClick,\n sizeY,\n onImmediateClick,\n ...restProps\n}: ActionSheetItemProps) => {\n const platform = usePlatform();\n const { onItemClick = () => noop, isDesktop } = React.useContext(ActionSheetContext);\n\n let Component: React.ElementType = restProps.href ? 'a' : 'div';\n\n if (selectable) {\n Component = 'label';\n }\n\n const isCompact = hasReactNode(subtitle) || hasReactNode(meta) || selectable;\n\n return (\n <Tappable\n {...restProps}\n onClick={selectable ? onClick : onItemClick(onClick, onImmediateClick, autoclose)}\n activeMode=\"ActionSheetItem--active\"\n vkuiClass={\n classNames(\n getClassName('ActionSheetItem', platform),\n `ActionSheetItem--${mode}`,\n `ActionSheetItem--sizeY-${sizeY}`,\n {\n 'ActionSheetItem--compact': isCompact,\n 'ActionSheetItem--desktop': isDesktop,\n 'ActionSheetItem--withSubtitle': hasReactNode(subtitle),\n },\n )\n }\n Component={Component}\n >\n {hasReactNode(before) && <div vkuiClass=\"ActionSheetItem__before\">{before}</div>}\n <div vkuiClass=\"ActionSheetItem__container\">\n <div vkuiClass=\"ActionSheetItem__content\">\n {sizeY === SizeType.COMPACT ?\n <React.Fragment>\n <Text\n weight={mode === 'cancel' ? 'medium' : 'regular'}\n vkuiClass=\"ActionSheetItem__children\"\n >\n {children}\n </Text>\n {hasReactNode(meta) &&\n <Text\n weight=\"regular\"\n vkuiClass=\"ActionSheetItem__meta\"\n >\n {meta}\n </Text>\n }\n </React.Fragment>\n :\n <React.Fragment>\n <Title\n weight={mode === 'cancel' ? 'medium' : 'regular'}\n level={isCompact || hasReactNode(before) || platform === ANDROID ? '3' : '2'}\n vkuiClass=\"ActionSheetItem__children\"\n >\n {children}\n </Title>\n {hasReactNode(meta) &&\n <Title\n weight=\"regular\"\n level={isCompact || hasReactNode(before) || platform === ANDROID ? '3' : '2'}\n vkuiClass=\"ActionSheetItem__meta\"\n >\n {meta}\n </Title>\n }\n </React.Fragment>\n }\n </div>\n {hasReactNode(subtitle) && (sizeY === SizeType.COMPACT ?\n <Caption weight=\"regular\" vkuiClass=\"ActionSheetItem__subtitle\" level=\"1\">{subtitle}</Caption>\n :\n <Subhead weight=\"regular\" vkuiClass=\"ActionSheetItem__subtitle\">{subtitle}</Subhead>\n )}\n </div>\n {selectable &&\n <div vkuiClass=\"ActionSheetItem__after\">\n <input\n type=\"radio\"\n vkuiClass=\"ActionSheetItem__radio\"\n name={name}\n value={value}\n onChange={onChange}\n onClick={onItemClick(noop, noop, autoclose)}\n defaultChecked={defaultChecked}\n checked={checked}\n disabled={restProps.disabled}\n />\n <div vkuiClass=\"ActionSheetItem__marker\">\n {platform === VKCOM ? <Icon24Done /> : <Icon16Done />}\n </div>\n </div>\n }\n </Tappable>\n );\n};\n\nActionSheetItem.defaultProps = {\n mode: 'default',\n};\n\nexport default withAdaptivity(ActionSheetItem, { sizeY: true });\n"],"file":"ActionSheetItem.js"}
@@ -32,10 +32,15 @@ export interface AdaptivityProps extends SizeProps {
32
32
  * @ignore
33
33
  */
34
34
  hasMouse?: boolean;
35
+ /**
36
+ * @ignore
37
+ */
38
+ deviceHasHover?: boolean;
35
39
  }
36
40
  export interface AdaptivityContextInterface extends SizeProps {
37
41
  viewWidth?: ViewWidth;
38
42
  viewHeight?: ViewHeight;
39
43
  hasMouse?: boolean;
44
+ deviceHasHover?: boolean;
40
45
  }
41
46
  export declare const AdaptivityContext: React.Context<AdaptivityContextInterface>;
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
+ import { hasHover, hasMouse } from '@vkontakte/vkjs';
2
3
  export var SizeType;
3
4
 
4
5
  (function (SizeType) {
@@ -26,6 +27,8 @@ export var ViewHeight;
26
27
 
27
28
  export var AdaptivityContext = /*#__PURE__*/React.createContext({
28
29
  sizeX: SizeType.COMPACT,
29
- sizeY: SizeType.REGULAR
30
+ sizeY: SizeType.REGULAR,
31
+ hasMouse: hasMouse,
32
+ deviceHasHover: hasHover
30
33
  });
31
34
  //# sourceMappingURL=AdaptivityContext.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/AdaptivityProvider/AdaptivityContext.tsx"],"names":["React","SizeType","ViewWidth","ViewHeight","AdaptivityContext","createContext","sizeX","COMPACT","sizeY","REGULAR"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA,WAAYC,QAAZ;;WAAYA,Q;AAAAA,EAAAA,Q;AAAAA,EAAAA,Q;GAAAA,Q,KAAAA,Q;;AAKZ,WAAYC,SAAZ;;WAAYA,S;AAAAA,EAAAA,S,CAAAA,S;AAAAA,EAAAA,S,CAAAA,S;AAAAA,EAAAA,S,CAAAA,S;AAAAA,EAAAA,S,CAAAA,S;AAAAA,EAAAA,S,CAAAA,S;GAAAA,S,KAAAA,S;;AAQZ,WAAYC,UAAZ;;WAAYA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;GAAAA,U,KAAAA,U;;AAgCZ,OAAO,IAAMC,iBAAiB,gBAAGJ,KAAK,CAACK,aAAN,CAAgD;AAC/EC,EAAAA,KAAK,EAAEL,QAAQ,CAACM,OAD+D;AAE/EC,EAAAA,KAAK,EAAEP,QAAQ,CAACQ;AAF+D,CAAhD,CAA1B","sourcesContent":["import * as React from 'react';\n\nexport enum SizeType {\n COMPACT = 'compact',\n REGULAR = 'regular',\n}\n\nexport enum ViewWidth {\n SMALL_MOBILE = 1,\n MOBILE,\n SMALL_TABLET,\n TABLET,\n DESKTOP,\n}\n\nexport enum ViewHeight {\n EXTRA_SMALL = 1,\n SMALL,\n MEDIUM\n}\n\nexport interface SizeProps {\n sizeX?: SizeType;\n sizeY?: SizeType;\n}\n\nexport interface AdaptivityProps extends SizeProps {\n /**\n * @ignore\n */\n viewWidth?: ViewWidth;\n /**\n * @ignore\n */\n viewHeight?: ViewHeight;\n /**\n * @ignore\n */\n hasMouse?: boolean;\n}\n\nexport interface AdaptivityContextInterface extends SizeProps {\n viewWidth?: ViewWidth;\n viewHeight?: ViewHeight;\n hasMouse?: boolean;\n}\n\nexport const AdaptivityContext = React.createContext<AdaptivityContextInterface>({\n sizeX: SizeType.COMPACT,\n sizeY: SizeType.REGULAR,\n});\n"],"file":"AdaptivityContext.js"}
1
+ {"version":3,"sources":["../../../src/components/AdaptivityProvider/AdaptivityContext.tsx"],"names":["React","hasHover","hasMouse","SizeType","ViewWidth","ViewHeight","AdaptivityContext","createContext","sizeX","COMPACT","sizeY","REGULAR","deviceHasHover"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,QAAT,EAAmBC,QAAnB,QAAmC,iBAAnC;AAEA,WAAYC,QAAZ;;WAAYA,Q;AAAAA,EAAAA,Q;AAAAA,EAAAA,Q;GAAAA,Q,KAAAA,Q;;AAKZ,WAAYC,SAAZ;;WAAYA,S;AAAAA,EAAAA,S,CAAAA,S;AAAAA,EAAAA,S,CAAAA,S;AAAAA,EAAAA,S,CAAAA,S;AAAAA,EAAAA,S,CAAAA,S;AAAAA,EAAAA,S,CAAAA,S;GAAAA,S,KAAAA,S;;AAQZ,WAAYC,UAAZ;;WAAYA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;GAAAA,U,KAAAA,U;;AAqCZ,OAAO,IAAMC,iBAAiB,gBAAGN,KAAK,CAACO,aAAN,CAAgD;AAC/EC,EAAAA,KAAK,EAAEL,QAAQ,CAACM,OAD+D;AAE/EC,EAAAA,KAAK,EAAEP,QAAQ,CAACQ,OAF+D;AAG/ET,EAAAA,QAAQ,EAARA,QAH+E;AAI/EU,EAAAA,cAAc,EAAEX;AAJ+D,CAAhD,CAA1B","sourcesContent":["import * as React from 'react';\nimport { hasHover, hasMouse } from '@vkontakte/vkjs';\n\nexport enum SizeType {\n COMPACT = 'compact',\n REGULAR = 'regular',\n}\n\nexport enum ViewWidth {\n SMALL_MOBILE = 1,\n MOBILE,\n SMALL_TABLET,\n TABLET,\n DESKTOP,\n}\n\nexport enum ViewHeight {\n EXTRA_SMALL = 1,\n SMALL,\n MEDIUM\n}\n\nexport interface SizeProps {\n sizeX?: SizeType;\n sizeY?: SizeType;\n}\n\nexport interface AdaptivityProps extends SizeProps {\n /**\n * @ignore\n */\n viewWidth?: ViewWidth;\n /**\n * @ignore\n */\n viewHeight?: ViewHeight;\n /**\n * @ignore\n */\n hasMouse?: boolean;\n /**\n * @ignore\n */\n deviceHasHover?: boolean;\n}\n\nexport interface AdaptivityContextInterface extends SizeProps {\n viewWidth?: ViewWidth;\n viewHeight?: ViewHeight;\n hasMouse?: boolean;\n deviceHasHover?: boolean;\n}\n\nexport const AdaptivityContext = React.createContext<AdaptivityContextInterface>({\n sizeX: SizeType.COMPACT,\n sizeY: SizeType.REGULAR,\n hasMouse,\n deviceHasHover: hasHover,\n});\n"],"file":"AdaptivityContext.js"}
@@ -1,7 +1,7 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import { createScopedElement } from "../../lib/jsxRuntime";
3
3
  import * as React from 'react';
4
- import { hasMouse as _hasMouse } from '@vkontakte/vkjs';
4
+ import { hasMouse as _hasMouse, hasHover as _hasHover } from '@vkontakte/vkjs';
5
5
  import { AdaptivityContext, SizeType, ViewHeight, ViewWidth } from "./AdaptivityContext";
6
6
  import { useDOM } from "../../lib/dom";
7
7
  export var DESKTOP_SIZE = 1280;
@@ -32,9 +32,10 @@ export default function AdaptivityProvider(props) {
32
32
  viewHeight = _adaptivityRef$curren.viewHeight,
33
33
  sizeX = _adaptivityRef$curren.sizeX,
34
34
  sizeY = _adaptivityRef$curren.sizeY,
35
- hasMouse = _adaptivityRef$curren.hasMouse;
35
+ hasMouse = _adaptivityRef$curren.hasMouse,
36
+ deviceHasHover = _adaptivityRef$curren.deviceHasHover;
36
37
 
37
- if (viewWidth !== calculated.viewWidth || viewHeight !== calculated.viewHeight || sizeX !== calculated.sizeX || sizeY !== calculated.sizeY || hasMouse !== calculated.hasMouse) {
38
+ if (viewWidth !== calculated.viewWidth || viewHeight !== calculated.viewHeight || sizeX !== calculated.sizeX || sizeY !== calculated.sizeY || hasMouse !== calculated.hasMouse || deviceHasHover !== calculated.deviceHasHover) {
38
39
  adaptivityRef.current = calculated;
39
40
  updateAdaptivity({});
40
41
  }
@@ -45,18 +46,21 @@ export default function AdaptivityProvider(props) {
45
46
  return function () {
46
47
  window.removeEventListener('resize', onResize, false);
47
48
  };
48
- }, [props.viewWidth, props.viewHeight, props.sizeX, props.sizeY, props.hasMouse]);
49
+ }, [props.viewWidth, props.viewHeight, props.sizeX, props.sizeY, props.hasMouse, props.deviceHasHover]);
49
50
  return createScopedElement(AdaptivityContext.Provider, {
50
51
  value: adaptivityRef.current
51
52
  }, props.children);
52
53
  }
53
54
 
54
55
  function calculateAdaptivity(windowWidth, windowHeight, props) {
56
+ var _props$hasMouse, _props$deviceHasHover;
57
+
55
58
  var viewWidth = ViewWidth.SMALL_MOBILE;
56
59
  var viewHeight = ViewHeight.SMALL;
57
60
  var sizeY = SizeType.REGULAR;
58
61
  var sizeX = SizeType.REGULAR;
59
- var hasMouse = typeof props.hasMouse === 'boolean' ? props.hasMouse : _hasMouse;
62
+ var hasMouse = (_props$hasMouse = props.hasMouse) !== null && _props$hasMouse !== void 0 ? _props$hasMouse : _hasMouse;
63
+ var deviceHasHover = (_props$deviceHasHover = props.deviceHasHover) !== null && _props$deviceHasHover !== void 0 ? _props$deviceHasHover : _hasHover;
60
64
 
61
65
  if (windowWidth >= DESKTOP_SIZE) {
62
66
  viewWidth = ViewWidth.DESKTOP;
@@ -96,7 +100,8 @@ function calculateAdaptivity(windowWidth, windowHeight, props) {
96
100
  viewHeight: viewHeight,
97
101
  sizeX: sizeX,
98
102
  sizeY: sizeY,
99
- hasMouse: hasMouse
103
+ hasMouse: hasMouse,
104
+ deviceHasHover: deviceHasHover
100
105
  };
101
106
  }
102
107
  //# sourceMappingURL=AdaptivityProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/AdaptivityProvider/AdaptivityProvider.tsx"],"names":["React","hasMouse","_hasMouse","AdaptivityContext","SizeType","ViewHeight","ViewWidth","useDOM","DESKTOP_SIZE","TABLET_SIZE","SMALL_TABLET_SIZE","MOBILE_SIZE","MOBILE_LANDSCAPE_HEIGHT","MEDIUM_HEIGHT","AdaptivityProvider","props","adaptivityRef","useRef","useState","updateAdaptivity","window","current","calculateAdaptivity","innerWidth","innerHeight","useEffect","onResize","calculated","viewWidth","viewHeight","sizeX","sizeY","addEventListener","removeEventListener","children","windowWidth","windowHeight","SMALL_MOBILE","SMALL","REGULAR","DESKTOP","TABLET","SMALL_TABLET","MOBILE","MEDIUM","EXTRA_SMALL","COMPACT"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { hasMouse as _hasMouse } from '@vkontakte/vkjs';\nimport { AdaptivityContext, AdaptivityContextInterface, SizeType, ViewHeight, ViewWidth } from './AdaptivityContext';\nimport { useDOM } from '../../lib/dom';\n\nexport interface AdaptivityProviderProps extends AdaptivityContextInterface {\n children?: React.ReactNode;\n}\n\nexport const DESKTOP_SIZE = 1280;\nexport const TABLET_SIZE = 1024;\nexport const SMALL_TABLET_SIZE = 768;\nexport const MOBILE_SIZE = 320;\n\nexport const MOBILE_LANDSCAPE_HEIGHT = 414;\nexport const MEDIUM_HEIGHT = 720;\n\nexport default function AdaptivityProvider(props: AdaptivityProviderProps) {\n const adaptivityRef = React.useRef<AdaptivityContextInterface>(null);\n const [, updateAdaptivity] = React.useState({});\n\n const { window } = useDOM();\n\n if (!adaptivityRef.current) {\n adaptivityRef.current = calculateAdaptivity(\n window ? window.innerWidth : 0,\n window ? window.innerHeight : 0,\n props,\n );\n }\n\n React.useEffect(() => {\n function onResize() {\n const calculated = calculateAdaptivity(window.innerWidth, window.innerHeight, props);\n const { viewWidth, viewHeight, sizeX, sizeY, hasMouse } = adaptivityRef.current;\n\n if (\n viewWidth !== calculated.viewWidth ||\n viewHeight !== calculated.viewHeight ||\n sizeX !== calculated.sizeX ||\n sizeY !== calculated.sizeY ||\n hasMouse !== calculated.hasMouse\n ) {\n adaptivityRef.current = calculated;\n updateAdaptivity({});\n }\n }\n\n onResize();\n window.addEventListener('resize', onResize, false);\n\n return () => {\n window.removeEventListener('resize', onResize, false);\n };\n }, [props.viewWidth, props.viewHeight, props.sizeX, props.sizeY, props.hasMouse]);\n\n return (\n <AdaptivityContext.Provider value={adaptivityRef.current}>\n {props.children}\n </AdaptivityContext.Provider>\n );\n}\n\nfunction calculateAdaptivity(windowWidth: number, windowHeight: number, props: AdaptivityProviderProps) {\n let viewWidth = ViewWidth.SMALL_MOBILE;\n let viewHeight = ViewHeight.SMALL;\n let sizeY = SizeType.REGULAR;\n let sizeX = SizeType.REGULAR;\n let hasMouse = typeof props.hasMouse === 'boolean' ? props.hasMouse : _hasMouse;\n\n if (windowWidth >= DESKTOP_SIZE) {\n viewWidth = ViewWidth.DESKTOP;\n } else if (windowWidth >= TABLET_SIZE) {\n viewWidth = ViewWidth.TABLET;\n } else if (windowWidth >= SMALL_TABLET_SIZE) {\n viewWidth = ViewWidth.SMALL_TABLET;\n } else if (windowWidth >= MOBILE_SIZE) {\n viewWidth = ViewWidth.MOBILE;\n } else {\n viewWidth = ViewWidth.SMALL_MOBILE;\n }\n\n if (windowHeight >= MEDIUM_HEIGHT) {\n viewHeight = ViewHeight.MEDIUM;\n } else if (windowHeight > MOBILE_LANDSCAPE_HEIGHT) {\n viewHeight = ViewHeight.SMALL;\n } else {\n viewHeight = ViewHeight.EXTRA_SMALL;\n }\n\n props.viewWidth && (viewWidth = props.viewWidth);\n props.viewHeight && (viewHeight = props.viewHeight);\n\n if (viewWidth <= ViewWidth.MOBILE) {\n sizeX = SizeType.COMPACT;\n }\n\n if (viewWidth >= ViewWidth.SMALL_TABLET && hasMouse || viewHeight <= ViewHeight.EXTRA_SMALL) {\n sizeY = SizeType.COMPACT;\n }\n\n props.sizeX && (sizeX = props.sizeX);\n props.sizeY && (sizeY = props.sizeY);\n\n return { viewWidth, viewHeight, sizeX, sizeY, hasMouse };\n}\n"],"file":"AdaptivityProvider.js"}
1
+ {"version":3,"sources":["../../../src/components/AdaptivityProvider/AdaptivityProvider.tsx"],"names":["React","hasMouse","_hasMouse","hasHover","_hasHover","AdaptivityContext","SizeType","ViewHeight","ViewWidth","useDOM","DESKTOP_SIZE","TABLET_SIZE","SMALL_TABLET_SIZE","MOBILE_SIZE","MOBILE_LANDSCAPE_HEIGHT","MEDIUM_HEIGHT","AdaptivityProvider","props","adaptivityRef","useRef","useState","updateAdaptivity","window","current","calculateAdaptivity","innerWidth","innerHeight","useEffect","onResize","calculated","viewWidth","viewHeight","sizeX","sizeY","deviceHasHover","addEventListener","removeEventListener","children","windowWidth","windowHeight","SMALL_MOBILE","SMALL","REGULAR","DESKTOP","TABLET","SMALL_TABLET","MOBILE","MEDIUM","EXTRA_SMALL","COMPACT"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,QAAQ,IAAIC,SAArB,EAAgCC,QAAQ,IAAIC,SAA5C,QAA6D,iBAA7D;AACA,SAASC,iBAAT,EAAwDC,QAAxD,EAAkEC,UAAlE,EAA8EC,SAA9E;AACA,SAASC,MAAT;AAMA,OAAO,IAAMC,YAAY,GAAG,IAArB;AACP,OAAO,IAAMC,WAAW,GAAG,IAApB;AACP,OAAO,IAAMC,iBAAiB,GAAG,GAA1B;AACP,OAAO,IAAMC,WAAW,GAAG,GAApB;AAEP,OAAO,IAAMC,uBAAuB,GAAG,GAAhC;AACP,OAAO,IAAMC,aAAa,GAAG,GAAtB;AAEP,eAAe,SAASC,kBAAT,CAA4BC,KAA5B,EAA4D;AACzE,MAAMC,aAAa,GAAGlB,KAAK,CAACmB,MAAN,CAAyC,IAAzC,CAAtB;;AACA,wBAA6BnB,KAAK,CAACoB,QAAN,CAAe,EAAf,CAA7B;AAAA;AAAA,MAASC,gBAAT;;AAEA,gBAAmBZ,MAAM,EAAzB;AAAA,MAAQa,MAAR,WAAQA,MAAR;;AAEA,MAAI,CAACJ,aAAa,CAACK,OAAnB,EAA4B;AAC1BL,IAAAA,aAAa,CAACK,OAAd,GAAwBC,mBAAmB,CACzCF,MAAM,GAAGA,MAAM,CAACG,UAAV,GAAuB,CADY,EAEzCH,MAAM,GAAGA,MAAM,CAACI,WAAV,GAAwB,CAFW,EAGzCT,KAHyC,CAA3C;AAKD;;AAEDjB,EAAAA,KAAK,CAAC2B,SAAN,CAAgB,YAAM;AACpB,aAASC,QAAT,GAAoB;AAClB,UAAMC,UAAU,GAAGL,mBAAmB,CAACF,MAAM,CAACG,UAAR,EAAoBH,MAAM,CAACI,WAA3B,EAAwCT,KAAxC,CAAtC;AACA,kCAA0EC,aAAa,CAACK,OAAxF;AAAA,UAAQO,SAAR,yBAAQA,SAAR;AAAA,UAAmBC,UAAnB,yBAAmBA,UAAnB;AAAA,UAA+BC,KAA/B,yBAA+BA,KAA/B;AAAA,UAAsCC,KAAtC,yBAAsCA,KAAtC;AAAA,UAA6ChC,QAA7C,yBAA6CA,QAA7C;AAAA,UAAuDiC,cAAvD,yBAAuDA,cAAvD;;AAEA,UACEJ,SAAS,KAAKD,UAAU,CAACC,SAAzB,IACAC,UAAU,KAAKF,UAAU,CAACE,UAD1B,IAEAC,KAAK,KAAKH,UAAU,CAACG,KAFrB,IAGAC,KAAK,KAAKJ,UAAU,CAACI,KAHrB,IAIAhC,QAAQ,KAAK4B,UAAU,CAAC5B,QAJxB,IAKAiC,cAAc,KAAKL,UAAU,CAACK,cANhC,EAOE;AACAhB,QAAAA,aAAa,CAACK,OAAd,GAAwBM,UAAxB;AACAR,QAAAA,gBAAgB,CAAC,EAAD,CAAhB;AACD;AACF;;AAEDO,IAAAA,QAAQ;AACRN,IAAAA,MAAM,CAACa,gBAAP,CAAwB,QAAxB,EAAkCP,QAAlC,EAA4C,KAA5C;AAEA,WAAO,YAAM;AACXN,MAAAA,MAAM,CAACc,mBAAP,CAA2B,QAA3B,EAAqCR,QAArC,EAA+C,KAA/C;AACD,KAFD;AAGD,GAxBD,EAwBG,CAACX,KAAK,CAACa,SAAP,EAAkBb,KAAK,CAACc,UAAxB,EAAoCd,KAAK,CAACe,KAA1C,EAAiDf,KAAK,CAACgB,KAAvD,EAA8DhB,KAAK,CAAChB,QAApE,EAA8EgB,KAAK,CAACiB,cAApF,CAxBH;AA0BA,SACE,oBAAC,iBAAD,CAAmB,QAAnB;AAA4B,IAAA,KAAK,EAAEhB,aAAa,CAACK;AAAjD,KACGN,KAAK,CAACoB,QADT,CADF;AAKD;;AAED,SAASb,mBAAT,CAA6Bc,WAA7B,EAAkDC,YAAlD,EAAwEtB,KAAxE,EAAwG;AAAA;;AACtG,MAAIa,SAAS,GAAGtB,SAAS,CAACgC,YAA1B;AACA,MAAIT,UAAU,GAAGxB,UAAU,CAACkC,KAA5B;AACA,MAAIR,KAAK,GAAG3B,QAAQ,CAACoC,OAArB;AACA,MAAIV,KAAK,GAAG1B,QAAQ,CAACoC,OAArB;AACA,MAAIzC,QAAQ,sBAAGgB,KAAK,CAAChB,QAAT,6DAAqBC,SAAjC;AACA,MAAIgC,cAAc,4BAAGjB,KAAK,CAACiB,cAAT,yEAA2B9B,SAA7C;;AAEA,MAAIkC,WAAW,IAAI5B,YAAnB,EAAiC;AAC/BoB,IAAAA,SAAS,GAAGtB,SAAS,CAACmC,OAAtB;AACD,GAFD,MAEO,IAAIL,WAAW,IAAI3B,WAAnB,EAAgC;AACrCmB,IAAAA,SAAS,GAAGtB,SAAS,CAACoC,MAAtB;AACD,GAFM,MAEA,IAAIN,WAAW,IAAI1B,iBAAnB,EAAsC;AAC3CkB,IAAAA,SAAS,GAAGtB,SAAS,CAACqC,YAAtB;AACD,GAFM,MAEA,IAAIP,WAAW,IAAIzB,WAAnB,EAAgC;AACrCiB,IAAAA,SAAS,GAAGtB,SAAS,CAACsC,MAAtB;AACD,GAFM,MAEA;AACLhB,IAAAA,SAAS,GAAGtB,SAAS,CAACgC,YAAtB;AACD;;AAED,MAAID,YAAY,IAAIxB,aAApB,EAAmC;AACjCgB,IAAAA,UAAU,GAAGxB,UAAU,CAACwC,MAAxB;AACD,GAFD,MAEO,IAAIR,YAAY,GAAGzB,uBAAnB,EAA4C;AACjDiB,IAAAA,UAAU,GAAGxB,UAAU,CAACkC,KAAxB;AACD,GAFM,MAEA;AACLV,IAAAA,UAAU,GAAGxB,UAAU,CAACyC,WAAxB;AACD;;AAED/B,EAAAA,KAAK,CAACa,SAAN,KAAoBA,SAAS,GAAGb,KAAK,CAACa,SAAtC;AACAb,EAAAA,KAAK,CAACc,UAAN,KAAqBA,UAAU,GAAGd,KAAK,CAACc,UAAxC;;AAEA,MAAID,SAAS,IAAItB,SAAS,CAACsC,MAA3B,EAAmC;AACjCd,IAAAA,KAAK,GAAG1B,QAAQ,CAAC2C,OAAjB;AACD;;AAED,MAAInB,SAAS,IAAItB,SAAS,CAACqC,YAAvB,IAAuC5C,QAAvC,IAAmD8B,UAAU,IAAIxB,UAAU,CAACyC,WAAhF,EAA6F;AAC3Ff,IAAAA,KAAK,GAAG3B,QAAQ,CAAC2C,OAAjB;AACD;;AAEDhC,EAAAA,KAAK,CAACe,KAAN,KAAgBA,KAAK,GAAGf,KAAK,CAACe,KAA9B;AACAf,EAAAA,KAAK,CAACgB,KAAN,KAAgBA,KAAK,GAAGhB,KAAK,CAACgB,KAA9B;AAEA,SAAO;AAAEH,IAAAA,SAAS,EAATA,SAAF;AAAaC,IAAAA,UAAU,EAAVA,UAAb;AAAyBC,IAAAA,KAAK,EAALA,KAAzB;AAAgCC,IAAAA,KAAK,EAALA,KAAhC;AAAuChC,IAAAA,QAAQ,EAARA,QAAvC;AAAiDiC,IAAAA,cAAc,EAAdA;AAAjD,GAAP;AACD","sourcesContent":["import * as React from 'react';\nimport { hasMouse as _hasMouse, hasHover as _hasHover } from '@vkontakte/vkjs';\nimport { AdaptivityContext, AdaptivityContextInterface, SizeType, ViewHeight, ViewWidth } from './AdaptivityContext';\nimport { useDOM } from '../../lib/dom';\n\nexport interface AdaptivityProviderProps extends AdaptivityContextInterface {\n children?: React.ReactNode;\n}\n\nexport const DESKTOP_SIZE = 1280;\nexport const TABLET_SIZE = 1024;\nexport const SMALL_TABLET_SIZE = 768;\nexport const MOBILE_SIZE = 320;\n\nexport const MOBILE_LANDSCAPE_HEIGHT = 414;\nexport const MEDIUM_HEIGHT = 720;\n\nexport default function AdaptivityProvider(props: AdaptivityProviderProps) {\n const adaptivityRef = React.useRef<AdaptivityContextInterface>(null);\n const [, updateAdaptivity] = React.useState({});\n\n const { window } = useDOM();\n\n if (!adaptivityRef.current) {\n adaptivityRef.current = calculateAdaptivity(\n window ? window.innerWidth : 0,\n window ? window.innerHeight : 0,\n props,\n );\n }\n\n React.useEffect(() => {\n function onResize() {\n const calculated = calculateAdaptivity(window.innerWidth, window.innerHeight, props);\n const { viewWidth, viewHeight, sizeX, sizeY, hasMouse, deviceHasHover } = adaptivityRef.current;\n\n if (\n viewWidth !== calculated.viewWidth ||\n viewHeight !== calculated.viewHeight ||\n sizeX !== calculated.sizeX ||\n sizeY !== calculated.sizeY ||\n hasMouse !== calculated.hasMouse ||\n deviceHasHover !== calculated.deviceHasHover\n ) {\n adaptivityRef.current = calculated;\n updateAdaptivity({});\n }\n }\n\n onResize();\n window.addEventListener('resize', onResize, false);\n\n return () => {\n window.removeEventListener('resize', onResize, false);\n };\n }, [props.viewWidth, props.viewHeight, props.sizeX, props.sizeY, props.hasMouse, props.deviceHasHover]);\n\n return (\n <AdaptivityContext.Provider value={adaptivityRef.current}>\n {props.children}\n </AdaptivityContext.Provider>\n );\n}\n\nfunction calculateAdaptivity(windowWidth: number, windowHeight: number, props: AdaptivityProviderProps) {\n let viewWidth = ViewWidth.SMALL_MOBILE;\n let viewHeight = ViewHeight.SMALL;\n let sizeY = SizeType.REGULAR;\n let sizeX = SizeType.REGULAR;\n let hasMouse = props.hasMouse ?? _hasMouse;\n let deviceHasHover = props.deviceHasHover ?? _hasHover;\n\n if (windowWidth >= DESKTOP_SIZE) {\n viewWidth = ViewWidth.DESKTOP;\n } else if (windowWidth >= TABLET_SIZE) {\n viewWidth = ViewWidth.TABLET;\n } else if (windowWidth >= SMALL_TABLET_SIZE) {\n viewWidth = ViewWidth.SMALL_TABLET;\n } else if (windowWidth >= MOBILE_SIZE) {\n viewWidth = ViewWidth.MOBILE;\n } else {\n viewWidth = ViewWidth.SMALL_MOBILE;\n }\n\n if (windowHeight >= MEDIUM_HEIGHT) {\n viewHeight = ViewHeight.MEDIUM;\n } else if (windowHeight > MOBILE_LANDSCAPE_HEIGHT) {\n viewHeight = ViewHeight.SMALL;\n } else {\n viewHeight = ViewHeight.EXTRA_SMALL;\n }\n\n props.viewWidth && (viewWidth = props.viewWidth);\n props.viewHeight && (viewHeight = props.viewHeight);\n\n if (viewWidth <= ViewWidth.MOBILE) {\n sizeX = SizeType.COMPACT;\n }\n\n if (viewWidth >= ViewWidth.SMALL_TABLET && hasMouse || viewHeight <= ViewHeight.EXTRA_SMALL) {\n sizeY = SizeType.COMPACT;\n }\n\n props.sizeX && (sizeX = props.sizeX);\n props.sizeY && (sizeY = props.sizeY);\n\n return { viewWidth, viewHeight, sizeX, sizeY, hasMouse, deviceHasHover };\n}\n"],"file":"AdaptivityProvider.js"}
@@ -68,16 +68,12 @@ export var AppRoot = withAdaptivity(function (_ref) {
68
68
 
69
69
 
70
70
  useIsomorphicLayoutEffect(function () {
71
- if (mode === 'full') {
72
- return noop;
73
- }
74
-
75
71
  var portal = document.createElement('div');
76
72
  portal.classList.add('vkui__portal-root');
77
73
  document.body.appendChild(portal);
78
74
  setPortalRoot(portal);
79
75
  return function () {
80
- return portal.parentElement.removeChild(portal);
76
+ portal.parentElement.removeChild(portal);
81
77
  };
82
78
  }, []); // setup root classes
83
79
 
@@ -148,7 +144,8 @@ export var AppRoot = withAdaptivity(function (_ref) {
148
144
  appRoot: rootRef,
149
145
  portalRoot: portalRoot,
150
146
  embedded: mode === 'embedded',
151
- keyboardInput: isKeyboardInputActive
147
+ keyboardInput: isKeyboardInputActive,
148
+ mode: mode
152
149
  }
153
150
  }, createScopedElement(ScrollContext.Provider, {
154
151
  value: scrollController
@@ -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","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","keyboardInput"],"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 keyboardInput: isKeyboardInputActive,\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","keyboardInput"],"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 const portal = document.createElement('div');\n portal.classList.add('vkui__portal-root');\n document.body.appendChild(portal);\n setPortalRoot(portal);\n return () => {\n portal.parentElement.removeChild(portal);\n };\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 keyboardInput: isKeyboardInputActive,\n mode,\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"}
@@ -3,6 +3,7 @@ export interface AppRootContextInterface {
3
3
  appRoot?: React.RefObject<HTMLDivElement>;
4
4
  portalRoot?: HTMLDivElement;
5
5
  embedded?: boolean;
6
+ mode?: 'partial' | 'embedded' | 'full';
6
7
  keyboardInput?: boolean;
7
8
  }
8
9
  export declare const AppRootContext: React.Context<AppRootContextInterface>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/AppRoot/AppRootContext.ts"],"names":["React","AppRootContext","createContext","portalRoot"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AASA,OAAO,IAAMC,cAAc,gBAAGD,KAAK,CAACE,aAAN,CAA6C;AACzEC,EAAAA,UAAU,EAAE;AAD6D,CAA7C,CAAvB","sourcesContent":["import * as React from 'react';\n\nexport interface AppRootContextInterface {\n appRoot?: React.RefObject<HTMLDivElement>;\n portalRoot?: HTMLDivElement;\n embedded?: boolean;\n keyboardInput?: boolean;\n}\n\nexport const AppRootContext = React.createContext<AppRootContextInterface>({\n portalRoot: null,\n});\n"],"file":"AppRootContext.js"}
1
+ {"version":3,"sources":["../../../src/components/AppRoot/AppRootContext.ts"],"names":["React","AppRootContext","createContext","portalRoot"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAUA,OAAO,IAAMC,cAAc,gBAAGD,KAAK,CAACE,aAAN,CAA6C;AACzEC,EAAAA,UAAU,EAAE;AAD6D,CAA7C,CAAvB","sourcesContent":["import * as React from 'react';\n\nexport interface AppRootContextInterface {\n appRoot?: React.RefObject<HTMLDivElement>;\n portalRoot?: HTMLDivElement;\n embedded?: boolean;\n mode?: 'partial' | 'embedded' | 'full';\n keyboardInput?: boolean;\n}\n\nexport const AppRootContext = React.createContext<AppRootContextInterface>({\n portalRoot: null,\n});\n"],"file":"AppRootContext.js"}
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
2
  export declare const AppRootPortal: React.FC<React.PropsWithChildren<{
3
3
  className?: string;
4
+ forcePortal?: boolean;
4
5
  }>>;
@@ -3,14 +3,18 @@ import * as React from 'react';
3
3
  import { createPortal } from 'react-dom';
4
4
  import { AppRootContext } from "./AppRootContext";
5
5
  export var AppRootPortal = function AppRootPortal(_ref) {
6
+ var _forcePortal;
7
+
6
8
  var children = _ref.children,
7
- className = _ref.className;
9
+ className = _ref.className,
10
+ forcePortal = _ref.forcePortal;
8
11
 
9
12
  var _React$useContext = React.useContext(AppRootContext),
10
13
  portalRoot = _React$useContext.portalRoot,
11
- embedded = _React$useContext.embedded;
14
+ mode = _React$useContext.mode;
12
15
 
13
- return embedded && portalRoot ? /*#__PURE__*/createPortal(createScopedElement("div", {
16
+ forcePortal = (_forcePortal = forcePortal) !== null && _forcePortal !== void 0 ? _forcePortal : mode !== 'full';
17
+ return portalRoot && forcePortal ? /*#__PURE__*/createPortal(createScopedElement("div", {
14
18
  className: className
15
19
  }, children), portalRoot) : createScopedElement(React.Fragment, null, children);
16
20
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/AppRoot/AppRootPortal.tsx"],"names":["React","createPortal","AppRootContext","AppRootPortal","children","className","useContext","portalRoot","embedded"],"mappings":";AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,YAAT,QAA6B,WAA7B;AACA,SAASC,cAAT;AAEA,OAAO,IAAMC,aAAwE,GAAG,SAA3EA,aAA2E,OAA6B;AAAA,MAA1BC,QAA0B,QAA1BA,QAA0B;AAAA,MAAhBC,SAAgB,QAAhBA,SAAgB;;AACnH,0BAAiCL,KAAK,CAACM,UAAN,CAAiBJ,cAAjB,CAAjC;AAAA,MAAQK,UAAR,qBAAQA,UAAR;AAAA,MAAoBC,QAApB,qBAAoBA,QAApB;;AACA,SAAOA,QAAQ,IAAID,UAAZ,gBACHN,YAAY,CAAE;AAAK,IAAA,SAAS,EAAEI;AAAhB,KAA4BD,QAA5B,CAAF,EAAgDG,UAAhD,CADT,GAEH,oBAAC,KAAD,CAAO,QAAP,QAAiBH,QAAjB,CAFJ;AAGD,CALM","sourcesContent":["import * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { AppRootContext } from './AppRootContext';\n\nexport const AppRootPortal: React.FC<React.PropsWithChildren<{ className?: string }>> = ({ children, className }) => {\n const { portalRoot, embedded } = React.useContext(AppRootContext);\n return embedded && portalRoot\n ? createPortal((<div className={className}>{children}</div>), portalRoot)\n : <React.Fragment>{children}</React.Fragment>;\n};\n"],"file":"AppRootPortal.js"}
1
+ {"version":3,"sources":["../../../src/components/AppRoot/AppRootPortal.tsx"],"names":["React","createPortal","AppRootContext","AppRootPortal","children","className","forcePortal","useContext","portalRoot","mode"],"mappings":";AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,YAAT,QAA6B,WAA7B;AACA,SAASC,cAAT;AAEA,OAAO,IAAMC,aAA+F,GAAG,SAAlGA,aAAkG,OAA0C;AAAA;;AAAA,MAAvCC,QAAuC,QAAvCA,QAAuC;AAAA,MAA7BC,SAA6B,QAA7BA,SAA6B;AAAA,MAAlBC,WAAkB,QAAlBA,WAAkB;;AACvJ,0BAA6BN,KAAK,CAACO,UAAN,CAAiBL,cAAjB,CAA7B;AAAA,MAAQM,UAAR,qBAAQA,UAAR;AAAA,MAAoBC,IAApB,qBAAoBA,IAApB;;AAEAH,EAAAA,WAAW,mBAAGA,WAAH,uDAAkBG,IAAI,KAAK,MAAtC;AACA,SAAOD,UAAU,IAAIF,WAAd,gBACHL,YAAY,CAAE;AAAK,IAAA,SAAS,EAAEI;AAAhB,KAA4BD,QAA5B,CAAF,EAAgDI,UAAhD,CADT,GAEH,oBAAC,KAAD,CAAO,QAAP,QAAiBJ,QAAjB,CAFJ;AAGD,CAPM","sourcesContent":["import * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { AppRootContext } from './AppRootContext';\n\nexport const AppRootPortal: React.FC<React.PropsWithChildren<{ className?: string; forcePortal?: boolean }>> = ({ children, className, forcePortal }) => {\n const { portalRoot, mode } = React.useContext(AppRootContext);\n\n forcePortal = forcePortal ?? mode !== 'full';\n return portalRoot && forcePortal\n ? createPortal((<div className={className}>{children}</div>), portalRoot)\n : <React.Fragment>{children}</React.Fragment>;\n};\n"],"file":"AppRootPortal.js"}
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["mode", "onRemove", "removePlaceholder", "onDragFinish", "before", "after", "disabled", "removable", "draggable", "selectable", "Component", "onChange", "name", "checked", "defaultChecked", "getRootRef", "draggerLabel", "className", "style"],
3
+ var _excluded = ["mode", "onRemove", "removePlaceholder", "onDragFinish", "before", "after", "disabled", "removable", "draggable", "selectable", "Component", "onChange", "name", "value", "checked", "defaultChecked", "getRootRef", "draggerLabel", "className", "style"],
4
4
  _excluded2 = ["dragging", "rootElRef"];
5
5
  import { createScopedElement } from "../../lib/jsxRuntime";
6
6
  import * as React from 'react';
@@ -31,6 +31,7 @@ export var Cell = function Cell(_ref) {
31
31
  Component = _ref.Component,
32
32
  onChange = _ref.onChange,
33
33
  name = _ref.name,
34
+ value = _ref.value,
34
35
  checked = _ref.checked,
35
36
  defaultChecked = _ref.defaultChecked,
36
37
  getRootRef = _ref.getRootRef,
@@ -91,6 +92,7 @@ export var Cell = function Cell(_ref) {
91
92
  if (selectable) {
92
93
  var checkboxProps = {
93
94
  name: name,
95
+ value: value,
94
96
  onChange: onChange,
95
97
  defaultChecked: defaultChecked,
96
98
  checked: checked,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Cell/Cell.tsx"],"names":["React","classNames","warnOnce","getClassName","ANDROID","IOS","VKCOM","SimpleCell","Removable","usePlatform","useDraggable","ListContext","CellDragger","CellCheckbox","warn","Cell","propsMode","mode","onRemove","removePlaceholder","onDragFinish","before","after","disabled","deprecatedRemovable","removable","draggable","deprecatedSelectable","selectable","Component","onChange","name","checked","defaultChecked","getRootRef","draggerLabel","className","style","restProps","process","env","NODE_ENV","platform","dragging","rootElRef","draggableProps","useContext","toggleDrag","useEffect","undefined","dragger","checkbox","checkboxProps","simpleCellDisabled","hasActive","cellClasses","simpleCell","e","current"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { classNames } from '../../lib/classNames';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { getClassName } from '../../helpers/getClassName';\nimport { ANDROID, IOS, VKCOM } from '../../lib/platform';\nimport SimpleCell, { SimpleCellProps } from '../SimpleCell/SimpleCell';\nimport { HasPlatform } from '../../types';\nimport { Removable, RemovableProps } from '../Removable/Removable';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useDraggable } from './useDraggable';\nimport { ListContext } from '../List/ListContext';\nimport { CellDragger } from './CellDragger/CellDragger';\nimport { CellCheckbox, CellCheckboxProps } from './CellCheckbox/CellCheckbox';\nimport './Cell.css';\n\nexport interface CellProps extends SimpleCellProps, HasPlatform, RemovableProps {\n mode?: 'removable' | 'selectable';\n /**\n * В режиме перетаскивания ячейка перестает быть кликабельной, то есть при клике переданный onClick вызываться не будет\n */\n draggable?: boolean;\n /**\n * @deprecated Будет удалено в 5.0.0. Используйте mode=\"removable\"\n */\n removable?: boolean;\n /**\n * Имя для input в режиме selectable\n */\n name?: string;\n /**\n * @deprecated Будет удалено в 5.0.0. Используйте mode=\"selectable\"\n */\n selectable?: boolean;\n /**\n * В режиме selectable реагирует на входящие значения пропса cheсked, как зависящий напрямую от входящего значения\n */\n checked?: boolean;\n /**\n * В режиме selectable реагирует на входящие значения пропса defaultChecked как неконтролируемый компонент\n */\n defaultChecked?: boolean;\n /**\n * Коллбэк срабатывает при завершении перетаскивания.\n * **Важно:** режим перетаскивания не меняет порядок ячеек в DOM. В коллбэке есть объект с полями `from` и `to`.\n * Эти числа нужны для того, чтобы разработчик понимал, с какого индекса на какой произошел переход. В песочнице\n * есть рабочий пример с обработкой этих чисел и перерисовкой списка.\n */\n onDragFinish?: ({ from, to }: { from: number; to: number }) => void;\n /**\n * aria-label для кнопки перетаскивания ячейки\n */\n draggerLabel?: string;\n}\n\nconst warn = warnOnce('Cell');\nexport const Cell: React.FC<CellProps> = ({\n mode: propsMode, // TODO: убрать переименование в propsMode перед 5.0.0\n onRemove,\n removePlaceholder = 'Удалить',\n onDragFinish,\n before,\n after,\n disabled,\n removable: deprecatedRemovable, // TODO: удалить перед 5.0.0\n draggable,\n selectable: deprecatedSelectable, // TODO: удалить перед 5.0.0\n Component,\n onChange,\n name,\n checked,\n defaultChecked,\n getRootRef,\n draggerLabel = 'Перенести ячейку',\n className,\n style,\n ...restProps\n}: CellProps) => {\n // TODO: удалить перед 5.0.0\n let mode: CellProps['mode'] = propsMode;\n\n if (!propsMode && (deprecatedSelectable || deprecatedRemovable)) {\n mode = deprecatedSelectable\n ? 'selectable'\n : 'removable';\n\n if (process.env.NODE_ENV === 'development') {\n deprecatedSelectable && warn('Свойство selectable устарелo и будет удалено в 5.0.0. Используйте mode=\"selectable\".');\n deprecatedRemovable && warn('Свойство removable устарелo и будет удалено в 5.0.0. Используйте mode=\"removable\".');\n }\n }\n // /end TODO\n\n const selectable = mode === 'selectable';\n const removable = mode === 'removable';\n\n const platform = usePlatform();\n\n const { dragging, rootElRef, ...draggableProps } = useDraggable({ onDragFinish });\n\n const { toggleDrag } = React.useContext(ListContext);\n React.useEffect(() => {\n if (dragging) {\n toggleDrag(true);\n return () => toggleDrag(false);\n }\n return undefined;\n }, [dragging]);\n\n let dragger;\n if (draggable) {\n dragger = <CellDragger vkuiClass=\"Cell__dragger\" aria-label={draggerLabel} {...draggableProps} />;\n }\n\n let checkbox;\n if (selectable) {\n const checkboxProps: CellCheckboxProps = { name, onChange, defaultChecked, checked, disabled };\n checkbox = <CellCheckbox vkuiClass=\"Cell__checkbox\" {...checkboxProps} />;\n }\n\n const simpleCellDisabled = draggable && !selectable || removable || disabled;\n const hasActive = !simpleCellDisabled && !dragging;\n\n const cellClasses = classNames(getClassName('Cell', platform), {\n 'Cell--dragging': dragging,\n 'Cell--removable': removable,\n 'Cell--selectable': selectable,\n 'Cell--disabled': disabled,\n });\n\n const simpleCell = (\n <SimpleCell\n hasActive={hasActive}\n hasHover={hasActive}\n {...restProps}\n vkuiClass=\"Cell__content\"\n disabled={simpleCellDisabled}\n Component={selectable ? 'label' : Component}\n before={\n <React.Fragment>\n {draggable && (platform === ANDROID || platform === VKCOM) && dragger}\n {selectable && checkbox}\n {before}\n </React.Fragment>\n }\n after={\n <React.Fragment>\n {draggable && platform === IOS && dragger}\n {after}\n </React.Fragment>\n }\n />\n );\n\n if (removable) {\n return (\n <Removable\n vkuiClass={cellClasses}\n className={className}\n style={style}\n getRootRef={rootElRef}\n removePlaceholder={removePlaceholder}\n onRemove={(e) => onRemove(e, rootElRef?.current)}\n >\n {simpleCell}\n </Removable>\n );\n }\n\n return (\n <div\n vkuiClass={cellClasses}\n className={className}\n style={style}\n ref={rootElRef}\n >\n {simpleCell}\n </div>\n );\n};\n"],"file":"Cell.js"}
1
+ {"version":3,"sources":["../../../src/components/Cell/Cell.tsx"],"names":["React","classNames","warnOnce","getClassName","ANDROID","IOS","VKCOM","SimpleCell","Removable","usePlatform","useDraggable","ListContext","CellDragger","CellCheckbox","warn","Cell","propsMode","mode","onRemove","removePlaceholder","onDragFinish","before","after","disabled","deprecatedRemovable","removable","draggable","deprecatedSelectable","selectable","Component","onChange","name","value","checked","defaultChecked","getRootRef","draggerLabel","className","style","restProps","process","env","NODE_ENV","platform","dragging","rootElRef","draggableProps","useContext","toggleDrag","useEffect","undefined","dragger","checkbox","checkboxProps","simpleCellDisabled","hasActive","cellClasses","simpleCell","e","current"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { classNames } from '../../lib/classNames';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { getClassName } from '../../helpers/getClassName';\nimport { ANDROID, IOS, VKCOM } from '../../lib/platform';\nimport SimpleCell, { SimpleCellProps } from '../SimpleCell/SimpleCell';\nimport { HasPlatform } from '../../types';\nimport { Removable, RemovableProps } from '../Removable/Removable';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useDraggable } from './useDraggable';\nimport { ListContext } from '../List/ListContext';\nimport { CellDragger } from './CellDragger/CellDragger';\nimport { CellCheckbox, CellCheckboxProps } from './CellCheckbox/CellCheckbox';\nimport './Cell.css';\n\nexport interface CellProps extends SimpleCellProps, HasPlatform, RemovableProps {\n mode?: 'removable' | 'selectable';\n /**\n * В режиме перетаскивания ячейка перестает быть кликабельной, то есть при клике переданный onClick вызываться не будет\n */\n draggable?: boolean;\n /**\n * @deprecated Будет удалено в 5.0.0. Используйте mode=\"removable\"\n */\n removable?: boolean;\n /**\n * Имя для input в режиме selectable\n */\n name?: string;\n /**\n * @deprecated Будет удалено в 5.0.0. Используйте mode=\"selectable\"\n */\n selectable?: boolean;\n /**\n * В режиме selectable реагирует на входящие значения пропса cheсked, как зависящий напрямую от входящего значения\n */\n checked?: boolean;\n /**\n * В режиме selectable реагирует на входящие значения пропса defaultChecked как неконтролируемый компонент\n */\n defaultChecked?: boolean;\n /**\n * Коллбэк срабатывает при завершении перетаскивания.\n * **Важно:** режим перетаскивания не меняет порядок ячеек в DOM. В коллбэке есть объект с полями `from` и `to`.\n * Эти числа нужны для того, чтобы разработчик понимал, с какого индекса на какой произошел переход. В песочнице\n * есть рабочий пример с обработкой этих чисел и перерисовкой списка.\n */\n onDragFinish?: ({ from, to }: { from: number; to: number }) => void;\n /**\n * aria-label для кнопки перетаскивания ячейки\n */\n draggerLabel?: string;\n}\n\nconst warn = warnOnce('Cell');\nexport const Cell: React.FC<CellProps> = ({\n mode: propsMode, // TODO: убрать переименование в propsMode перед 5.0.0\n onRemove,\n removePlaceholder = 'Удалить',\n onDragFinish,\n before,\n after,\n disabled,\n removable: deprecatedRemovable, // TODO: удалить перед 5.0.0\n draggable,\n selectable: deprecatedSelectable, // TODO: удалить перед 5.0.0\n Component,\n onChange,\n name,\n value,\n checked,\n defaultChecked,\n getRootRef,\n draggerLabel = 'Перенести ячейку',\n className,\n style,\n ...restProps\n}: CellProps) => {\n // TODO: удалить перед 5.0.0\n let mode: CellProps['mode'] = propsMode;\n\n if (!propsMode && (deprecatedSelectable || deprecatedRemovable)) {\n mode = deprecatedSelectable\n ? 'selectable'\n : 'removable';\n\n if (process.env.NODE_ENV === 'development') {\n deprecatedSelectable && warn('Свойство selectable устарелo и будет удалено в 5.0.0. Используйте mode=\"selectable\".');\n deprecatedRemovable && warn('Свойство removable устарелo и будет удалено в 5.0.0. Используйте mode=\"removable\".');\n }\n }\n // /end TODO\n\n const selectable = mode === 'selectable';\n const removable = mode === 'removable';\n\n const platform = usePlatform();\n\n const { dragging, rootElRef, ...draggableProps } = useDraggable({ onDragFinish });\n\n const { toggleDrag } = React.useContext(ListContext);\n React.useEffect(() => {\n if (dragging) {\n toggleDrag(true);\n return () => toggleDrag(false);\n }\n return undefined;\n }, [dragging]);\n\n let dragger;\n if (draggable) {\n dragger = <CellDragger vkuiClass=\"Cell__dragger\" aria-label={draggerLabel} {...draggableProps} />;\n }\n\n let checkbox;\n if (selectable) {\n const checkboxProps: CellCheckboxProps = { name, value, onChange, defaultChecked, checked, disabled };\n checkbox = <CellCheckbox vkuiClass=\"Cell__checkbox\" {...checkboxProps} />;\n }\n\n const simpleCellDisabled = draggable && !selectable || removable || disabled;\n const hasActive = !simpleCellDisabled && !dragging;\n\n const cellClasses = classNames(getClassName('Cell', platform), {\n 'Cell--dragging': dragging,\n 'Cell--removable': removable,\n 'Cell--selectable': selectable,\n 'Cell--disabled': disabled,\n });\n\n const simpleCell = (\n <SimpleCell\n hasActive={hasActive}\n hasHover={hasActive}\n {...restProps}\n vkuiClass=\"Cell__content\"\n disabled={simpleCellDisabled}\n Component={selectable ? 'label' : Component}\n before={\n <React.Fragment>\n {draggable && (platform === ANDROID || platform === VKCOM) && dragger}\n {selectable && checkbox}\n {before}\n </React.Fragment>\n }\n after={\n <React.Fragment>\n {draggable && platform === IOS && dragger}\n {after}\n </React.Fragment>\n }\n />\n );\n\n if (removable) {\n return (\n <Removable\n vkuiClass={cellClasses}\n className={className}\n style={style}\n getRootRef={rootElRef}\n removePlaceholder={removePlaceholder}\n onRemove={(e) => onRemove(e, rootElRef?.current)}\n >\n {simpleCell}\n </Removable>\n );\n }\n\n return (\n <div\n vkuiClass={cellClasses}\n className={className}\n style={style}\n ref={rootElRef}\n >\n {simpleCell}\n </div>\n );\n};\n"],"file":"Cell.js"}
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import { PopperCommonProps } from '../Popper/Popper';
3
+ export interface ClickPopperProps extends PopperCommonProps {
4
+ /**
5
+ * Содержимое `ClickPopper`
6
+ */
7
+ content?: React.ReactNode;
8
+ /**
9
+ * Если передан, то тултип будет показыван/скрыт в зависимости от значения свойства
10
+ */
11
+ shown?: boolean;
12
+ /**
13
+ * Вызывается при каждом изменении видимости тултипа
14
+ */
15
+ onShownChange?: (shown: boolean) => void;
16
+ /**
17
+ * Либо jsx-элемент (div, button, etc.), либо компонент со свойством `getRootRef`, которое применяется к корневому элемнету компонента
18
+ */
19
+ children?: React.ReactElement;
20
+ }
21
+ export declare const ClickPopper: React.FC<ClickPopperProps>;