@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/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,67 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ var _excluded = ["getRef", "content", "children", "onShownChange", "shown"];
5
+ import { createScopedElement } from "../../lib/jsxRuntime";
6
+ import * as React from 'react';
7
+ import { useDOM } from "../../lib/dom";
8
+ import { Popper } from "../Popper/Popper";
9
+ import { useExternRef } from "../../hooks/useExternRef";
10
+ import { useEventListener } from "../../hooks/useEventListener";
11
+ import { useGlobalEventListener } from "../../hooks/useGlobalEventListener";
12
+ import { usePatchChildrenRef } from "../../hooks/usePatchChildrenRef";
13
+ export var ClickPopper = function ClickPopper(_ref) {
14
+ var getRef = _ref.getRef,
15
+ content = _ref.content,
16
+ children = _ref.children,
17
+ onShownChange = _ref.onShownChange,
18
+ _shown = _ref.shown,
19
+ restProps = _objectWithoutProperties(_ref, _excluded);
20
+
21
+ var _React$useState = React.useState(_shown || false),
22
+ _React$useState2 = _slicedToArray(_React$useState, 2),
23
+ computedShown = _React$useState2[0],
24
+ setComputedShown = _React$useState2[1];
25
+
26
+ var _React$useState3 = React.useState(null),
27
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
28
+ dropdownNode = _React$useState4[0],
29
+ setPopperNode = _React$useState4[1];
30
+
31
+ var shown = typeof _shown === 'boolean' ? _shown : computedShown;
32
+
33
+ var _useDOM = useDOM(),
34
+ document = _useDOM.document;
35
+
36
+ var patchedPopperRef = useExternRef(setPopperNode, getRef);
37
+
38
+ var _usePatchChildrenRef = usePatchChildrenRef(children),
39
+ _usePatchChildrenRef2 = _slicedToArray(_usePatchChildrenRef, 2),
40
+ childRef = _usePatchChildrenRef2[0],
41
+ child = _usePatchChildrenRef2[1];
42
+
43
+ var setShown = function setShown(value) {
44
+ if (typeof _shown !== 'boolean') {
45
+ setComputedShown(value);
46
+ }
47
+
48
+ typeof onShownChange === 'function' && onShownChange(value);
49
+ };
50
+
51
+ useGlobalEventListener(document, 'click', function (e) {
52
+ if (dropdownNode && !childRef.current.contains(e.target) && !dropdownNode.contains(e.target)) {
53
+ setShown(false);
54
+ }
55
+ });
56
+ var targetClickEvent = useEventListener('click', function () {
57
+ setShown(!shown);
58
+ });
59
+ React.useEffect(function () {
60
+ targetClickEvent.add(childRef.current);
61
+ }, []);
62
+ return createScopedElement(React.Fragment, null, child, shown && createScopedElement(Popper, _extends({}, restProps, {
63
+ targetRef: childRef,
64
+ getRef: patchedPopperRef
65
+ }), content));
66
+ };
67
+ //# sourceMappingURL=ClickPopper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ClickPopper/ClickPopper.tsx"],"names":["React","useDOM","Popper","useExternRef","useEventListener","useGlobalEventListener","usePatchChildrenRef","ClickPopper","getRef","content","children","onShownChange","_shown","shown","restProps","useState","computedShown","setComputedShown","dropdownNode","setPopperNode","document","patchedPopperRef","childRef","child","setShown","value","e","current","contains","target","targetClickEvent","useEffect","add"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,MAAT;AACA,SAASC,MAAT;AACA,SAASC,YAAT;AACA,SAASC,gBAAT;AACA,SAASC,sBAAT;AACA,SAASC,mBAAT;AAqBA,OAAO,IAAMC,WAAuC,GAAG,SAA1CA,WAA0C,OAO/B;AAAA,MANtBC,MAMsB,QANtBA,MAMsB;AAAA,MALtBC,OAKsB,QALtBA,OAKsB;AAAA,MAJtBC,QAIsB,QAJtBA,QAIsB;AAAA,MAHtBC,aAGsB,QAHtBA,aAGsB;AAAA,MAFfC,MAEe,QAFtBC,KAEsB;AAAA,MADnBC,SACmB;;AACtB,wBAA0Cd,KAAK,CAACe,QAAN,CAAeH,MAAM,IAAI,KAAzB,CAA1C;AAAA;AAAA,MAAOI,aAAP;AAAA,MAAsBC,gBAAtB;;AACA,yBAAsCjB,KAAK,CAACe,QAAN,CAAe,IAAf,CAAtC;AAAA;AAAA,MAAOG,YAAP;AAAA,MAAqBC,aAArB;;AAEA,MAAMN,KAAK,GAAG,OAAOD,MAAP,KAAkB,SAAlB,GAA8BA,MAA9B,GAAuCI,aAArD;;AAEA,gBAAqBf,MAAM,EAA3B;AAAA,MAAQmB,QAAR,WAAQA,QAAR;;AAEA,MAAMC,gBAAgB,GAAGlB,YAAY,CAACgB,aAAD,EAAgBX,MAAhB,CAArC;;AAEA,6BAA0BF,mBAAmB,CAACI,QAAD,CAA7C;AAAA;AAAA,MAAOY,QAAP;AAAA,MAAiBC,KAAjB;;AAEA,MAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,KAAD,EAAoB;AACnC,QAAI,OAAOb,MAAP,KAAkB,SAAtB,EAAiC;AAC/BK,MAAAA,gBAAgB,CAACQ,KAAD,CAAhB;AACD;;AACD,WAAOd,aAAP,KAAyB,UAAzB,IAAuCA,aAAa,CAACc,KAAD,CAApD;AACD,GALD;;AAOApB,EAAAA,sBAAsB,CAACe,QAAD,EAAW,OAAX,EAAoB,UAACM,CAAD,EAAmB;AAC3D,QAAIR,YAAY,IAAI,CAACI,QAAQ,CAACK,OAAT,CAAiBC,QAAjB,CAA0BF,CAAC,CAACG,MAA5B,CAAjB,IAAgE,CAACX,YAAY,CAACU,QAAb,CAAsBF,CAAC,CAACG,MAAxB,CAArE,EAAsG;AACpGL,MAAAA,QAAQ,CAAC,KAAD,CAAR;AACD;AACF,GAJqB,CAAtB;AAMA,MAAMM,gBAAgB,GAAG1B,gBAAgB,CAAC,OAAD,EAAU,YAAM;AACvDoB,IAAAA,QAAQ,CAAC,CAACX,KAAF,CAAR;AACD,GAFwC,CAAzC;AAIAb,EAAAA,KAAK,CAAC+B,SAAN,CAAgB,YAAM;AACpBD,IAAAA,gBAAgB,CAACE,GAAjB,CAAqBV,QAAQ,CAACK,OAA9B;AACD,GAFD,EAEG,EAFH;AAIA,SACE,oBAAC,KAAD,CAAO,QAAP,QACGJ,KADH,EAEGV,KAAK,IACJ,oBAAC,MAAD,eACMC,SADN;AAEE,IAAA,SAAS,EAAEQ,QAFb;AAGE,IAAA,MAAM,EAAED;AAHV,MAKGZ,OALH,CAHJ,CADF;AAcD,CAtDM","sourcesContent":["import * as React from 'react';\nimport { useDOM } from '../../lib/dom';\nimport { Popper, PopperCommonProps } from '../Popper/Popper';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePatchChildrenRef } from '../../hooks/usePatchChildrenRef';\n\nexport interface ClickPopperProps extends PopperCommonProps {\n /**\n * Содержимое `ClickPopper`\n */\n content?: React.ReactNode;\n /**\n * Если передан, то тултип будет показыван/скрыт в зависимости от значения свойства\n */\n shown?: boolean;\n /**\n * Вызывается при каждом изменении видимости тултипа\n */\n onShownChange?: (shown: boolean) => void;\n /**\n * Либо jsx-элемент (div, button, etc.), либо компонент со свойством `getRootRef`, которое применяется к корневому элемнету компонента\n */\n children?: React.ReactElement;\n}\n\nexport const ClickPopper: React.FC<ClickPopperProps> = ({\n getRef,\n content,\n children,\n onShownChange,\n shown: _shown,\n ...restProps\n}: ClickPopperProps) => {\n const [computedShown, setComputedShown] = React.useState(_shown || false);\n const [dropdownNode, setPopperNode] = React.useState(null);\n\n const shown = typeof _shown === 'boolean' ? _shown : computedShown;\n\n const { document } = useDOM();\n\n const patchedPopperRef = useExternRef(setPopperNode, getRef);\n\n const [childRef, child] = usePatchChildrenRef(children);\n\n const setShown = (value: boolean) => {\n if (typeof _shown !== 'boolean') {\n setComputedShown(value);\n }\n typeof onShownChange === 'function' && onShownChange(value);\n };\n\n useGlobalEventListener(document, 'click', (e: MouseEvent) => {\n if (dropdownNode && !childRef.current.contains(e.target as Node) && !dropdownNode.contains(e.target)) {\n setShown(false);\n }\n });\n\n const targetClickEvent = useEventListener('click', () => {\n setShown(!shown);\n });\n\n React.useEffect(() => {\n targetClickEvent.add(childRef.current);\n }, []);\n\n return (\n <React.Fragment>\n {child}\n {shown &&\n <Popper\n {...restProps}\n targetRef={childRef}\n getRef={patchedPopperRef}\n >\n {content}\n </Popper>\n }\n </React.Fragment>\n );\n};\n"],"file":"ClickPopper.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ConfigProvider/ConfigProviderContext.tsx"],"names":["React","vkBridge","platform","Appearance","Scheme","WebviewType","defaultConfigProviderProps","webviewType","VKAPPS","isWebView","scheme","BRIGHT_LIGHT","transitionMotionEnabled","ConfigProviderContext","createContext"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,QAAP,MAA+D,sBAA/D;AACA,SAAuBC,QAAvB;AAEA,WAAYC,UAAZ;;WAAYA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;GAAAA,U,KAAAA,U;;AAKZ,WAAYC,MAAZ;;WAAYA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;GAAAA,M,KAAAA,M;;AAiBZ,WAAYC,WAAZ;;WAAYA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,KAAAA,W;;AAiCZ,OAAO,IAAMC,0BAA0B,GAAG;AACxCC,EAAAA,WAAW,EAAEF,WAAW,CAACG,MADe;AAExCC,EAAAA,SAAS,EAAER,QAAQ,CAACQ,SAAT,EAF6B;AAGxCC,EAAAA,MAAM,EAAEN,MAAM,CAACO,YAHyB;AAIxCC,EAAAA,uBAAuB,EAAE,IAJe;AAKxCV,EAAAA,QAAQ,EAAEA,QAAQ,EALsB,CAMxC;AACA;;AAPwC,CAAnC;AAUP,OAAO,IAAMW,qBAAqB,gBAAGb,KAAK,CAACc,aAAN,CAAoDR,0BAApD,CAA9B","sourcesContent":["import * as React from 'react';\nimport vkBridge, { AppearanceSchemeType, AppearanceType } from '@vkontakte/vk-bridge';\nimport { PlatformType, platform } from '../../lib/platform';\n\nexport enum Appearance {\n DARK = 'dark',\n LIGHT = 'light',\n}\n\nexport enum Scheme {\n DEPRECATED_CLIENT_LIGHT = 'client_light',\n DEPRECATED_CLIENT_DARK = 'client_dark',\n /**\n * @deprecated будет удалено в 5.0.0\n * версия оставлена для совместимости с vkcom, когда там была только одна схема\n */\n VKCOM = 'vkcom',\n\n BRIGHT_LIGHT = 'bright_light',\n SPACE_GRAY = 'space_gray',\n VKCOM_LIGHT = 'vkcom_light',\n VKCOM_DARK = 'vkcom_dark'\n}\n\nexport type AppearanceScheme = AppearanceSchemeType | Scheme.VKCOM | Scheme.VKCOM_DARK | Scheme.VKCOM_LIGHT | 'inherit';\n\nexport enum WebviewType {\n VKAPPS = 'vkapps',\n INTERNAL = 'internal',\n}\n\nexport interface ConfigProviderContextInterface {\n /**\n * Подсказывает приложению, обёрнутому в `ConfigProvider`, где открыто приложение: внутри webview или в мобильном браузере\n */\n isWebView?: boolean;\n /**\n * Тип вебвью.<br>\n * В случае `WebviewType.VKAPPS` интерфейс будет адаптирован для отображения в вебвью Mini Apps (системные контролы в правой части шапки)\n */\n webviewType?: WebviewType.INTERNAL | WebviewType.VKAPPS;\n /**\n * Тип приложения\n */\n app?: string;\n /**\n * Тип цветовой схемы – `light` или `dark`\n */\n appearance?: AppearanceType;\n /**\n * Включена ли анимация переходов между экранами в `Root` и `View`\n */\n transitionMotionEnabled?: boolean;\n /**\n * Платформа\n */\n platform?: PlatformType;\n}\n\nexport const defaultConfigProviderProps = {\n webviewType: WebviewType.VKAPPS,\n isWebView: vkBridge.isWebView(),\n scheme: Scheme.BRIGHT_LIGHT,\n transitionMotionEnabled: true,\n platform: platform(),\n // appearance is auto-detected by default\n // appearance: Appearance.LIGHT,\n};\n\nexport const ConfigProviderContext = React.createContext<ConfigProviderContextInterface>(defaultConfigProviderProps);\n"],"file":"ConfigProviderContext.js"}
1
+ {"version":3,"sources":["../../../../src/components/ConfigProvider/ConfigProviderContext.tsx"],"names":["React","vkBridge","platform","Appearance","Scheme","WebviewType","defaultConfigProviderProps","webviewType","VKAPPS","isWebView","scheme","BRIGHT_LIGHT","transitionMotionEnabled","ConfigProviderContext","createContext"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,QAAP,MAA+D,sBAA/D;AACA,SAAuBC,QAAvB;AAEA,WAAYC,UAAZ;;WAAYA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;GAAAA,U,KAAAA,U;;AAKZ,WAAYC,MAAZ;;WAAYA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;GAAAA,M,KAAAA,M;;AAyBZ,WAAYC,WAAZ;;WAAYA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,KAAAA,W;;AAiCZ,OAAO,IAAMC,0BAA0B,GAAG;AACxCC,EAAAA,WAAW,EAAEF,WAAW,CAACG,MADe;AAExCC,EAAAA,SAAS,EAAER,QAAQ,CAACQ,SAAT,EAF6B;AAGxCC,EAAAA,MAAM,EAAEN,MAAM,CAACO,YAHyB;AAIxCC,EAAAA,uBAAuB,EAAE,IAJe;AAKxCV,EAAAA,QAAQ,EAAEA,QAAQ,EALsB,CAMxC;AACA;;AAPwC,CAAnC;AAUP,OAAO,IAAMW,qBAAqB,gBAAGb,KAAK,CAACc,aAAN,CAAoDR,0BAApD,CAA9B","sourcesContent":["import * as React from 'react';\nimport vkBridge, { AppearanceSchemeType, AppearanceType } from '@vkontakte/vk-bridge';\nimport { PlatformType, platform } from '../../lib/platform';\n\nexport enum Appearance {\n DARK = 'dark',\n LIGHT = 'light',\n}\n\nexport enum Scheme {\n /**\n * @deprecated будет удалено в 5.0.0\n * версия оставлена для совместимости со старыми версиями клиентов\n */\n DEPRECATED_CLIENT_LIGHT = 'client_light',\n /**\n * @deprecated будет удалено в 5.0.0\n * версия оставлена для совместимости со старыми версиями клиентов\n */\n DEPRECATED_CLIENT_DARK = 'client_dark',\n /**\n * @deprecated будет удалено в 5.0.0\n * версия оставлена для совместимости с vkcom, когда там была только одна схема\n */\n VKCOM = 'vkcom',\n\n BRIGHT_LIGHT = 'bright_light',\n SPACE_GRAY = 'space_gray',\n VKCOM_LIGHT = 'vkcom_light',\n VKCOM_DARK = 'vkcom_dark'\n}\n\nexport type AppearanceScheme = AppearanceSchemeType | Scheme.VKCOM | Scheme.VKCOM_DARK | Scheme.VKCOM_LIGHT | 'inherit';\n\nexport enum WebviewType {\n VKAPPS = 'vkapps',\n INTERNAL = 'internal',\n}\n\nexport interface ConfigProviderContextInterface {\n /**\n * Подсказывает приложению, обёрнутому в `ConfigProvider`, где открыто приложение: внутри webview или в мобильном браузере\n */\n isWebView?: boolean;\n /**\n * Тип вебвью.<br>\n * В случае `WebviewType.VKAPPS` интерфейс будет адаптирован для отображения в вебвью Mini Apps (системные контролы в правой части шапки)\n */\n webviewType?: WebviewType.INTERNAL | WebviewType.VKAPPS;\n /**\n * Тип приложения\n */\n app?: string;\n /**\n * Тип цветовой схемы – `light` или `dark`\n */\n appearance?: AppearanceType;\n /**\n * Включена ли анимация переходов между экранами в `Root` и `View`\n */\n transitionMotionEnabled?: boolean;\n /**\n * Платформа\n */\n platform?: PlatformType;\n}\n\nexport const defaultConfigProviderProps = {\n webviewType: WebviewType.VKAPPS,\n isWebView: vkBridge.isWebView(),\n scheme: Scheme.BRIGHT_LIGHT,\n transitionMotionEnabled: true,\n platform: platform(),\n // appearance is auto-detected by default\n // appearance: Appearance.LIGHT,\n};\n\nexport const ConfigProviderContext = React.createContext<ConfigProviderContextInterface>(defaultConfigProviderProps);\n"],"file":"ConfigProviderContext.js"}
@@ -0,0 +1 @@
1
+ .vkuiDropdown{-webkit-animation:vkui-popper-fadein .2s ease;animation:vkui-popper-fadein .2s ease;background:#fff;background:var(--background_content)}.vkuiDropdown--ios{box-shadow:0 0 96px rgba(0,0,0,.16),0 0 2px rgba(0,0,0,.12);border-radius:14px}.vkuiDropdown--android{box-shadow:0 0 4px rgba(0,0,0,.08),0 8px 8px rgba(0,0,0,.16);border-radius:12px}.vkuiDropdown--vkcom{box-shadow:0 0 2px rgba(0,0,0,.08),0 8px 24px rgba(0,0,0,.08);border-radius:12px}
@@ -0,0 +1,41 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ var _excluded = ["action", "hideDelay", "showDelay"];
4
+ import { createScopedElement } from "../../lib/jsxRuntime";
5
+ import { HoverPopper } from "../HoverPopper/HoverPopper";
6
+ import { ClickPopper } from "../ClickPopper/ClickPopper";
7
+ import { getClassName } from "../../helpers/getClassName";
8
+ import { usePlatform } from "../../hooks/usePlatform";
9
+ import "./Dropdown.css"; // Приходится избегать экстендов от HoverPopperProps, ClickPopperProps и PopperProps, потому что react-docgen не умеет в Omit.
10
+ // Ждём либо фикса react-docgen (что вряд ли), либо переезда на react-docgen-typescript, где такой проблемы нет.
11
+
12
+ export var Dropdown = function Dropdown(_ref) {
13
+ var _ref$action = _ref.action,
14
+ action = _ref$action === void 0 ? 'click' : _ref$action,
15
+ hideDelay = _ref.hideDelay,
16
+ showDelay = _ref.showDelay,
17
+ popperProps = _objectWithoutProperties(_ref, _excluded);
18
+
19
+ var platform = usePlatform();
20
+ var Component;
21
+ var actionSpecificProps = {};
22
+
23
+ switch (action) {
24
+ case 'click':
25
+ Component = ClickPopper;
26
+ break;
27
+
28
+ case 'hover':
29
+ actionSpecificProps = {
30
+ hideDelay: hideDelay,
31
+ showDelay: showDelay
32
+ };
33
+ Component = HoverPopper;
34
+ break;
35
+ }
36
+
37
+ return createScopedElement(Component, _extends({
38
+ vkuiClass: getClassName('Dropdown', platform)
39
+ }, actionSpecificProps, popperProps));
40
+ };
41
+ //# sourceMappingURL=Dropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/Dropdown/Dropdown.tsx"],"names":["HoverPopper","ClickPopper","getClassName","usePlatform","Dropdown","action","hideDelay","showDelay","popperProps","platform","Component","actionSpecificProps"],"mappings":";;;;AACA,SAASA,WAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AAEA,wB,CAEA;AACA;;AA6CA,OAAO,IAAMC,QAAiC,GAAG,SAApCA,QAAoC,OAA+E;AAAA,yBAA5EC,MAA4E;AAAA,MAA5EA,MAA4E,4BAAnE,OAAmE;AAAA,MAA1DC,SAA0D,QAA1DA,SAA0D;AAAA,MAA/CC,SAA+C,QAA/CA,SAA+C;AAAA,MAAjCC,WAAiC;;AAC9H,MAAMC,QAAQ,GAAGN,WAAW,EAA5B;AAEA,MAAIO,SAAJ;AACA,MAAIC,mBAA2C,GAAG,EAAlD;;AAEA,UAAQN,MAAR;AACE,SAAK,OAAL;AACEK,MAAAA,SAAS,GAAGT,WAAZ;AACA;;AACF,SAAK,OAAL;AACEU,MAAAA,mBAAmB,GAAG;AAAEL,QAAAA,SAAS,EAATA,SAAF;AAAaC,QAAAA,SAAS,EAATA;AAAb,OAAtB;AACAG,MAAAA,SAAS,GAAGV,WAAZ;AACA;AAPJ;;AAUA,SACE,oBAAC,SAAD;AAAW,IAAA,SAAS,EAAEE,YAAY,CAAC,UAAD,EAAaO,QAAb;AAAlC,KAA8DE,mBAA9D,EAAuFH,WAAvF,EADF;AAGD,CAnBM","sourcesContent":["import * as React from 'react';\nimport { HoverPopper, HoverPopperProps } from '../HoverPopper/HoverPopper';\nimport { ClickPopper } from '../ClickPopper/ClickPopper';\nimport { getClassName } from '../../helpers/getClassName';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Placement } from '../Popper/Popper';\nimport './Dropdown.css';\n\n// Приходится избегать экстендов от HoverPopperProps, ClickPopperProps и PopperProps, потому что react-docgen не умеет в Omit.\n// Ждём либо фикса react-docgen (что вряд ли), либо переезда на react-docgen-typescript, где такой проблемы нет.\nexport interface DropdownProps {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: Placement;\n /**\n * Отступ по вспомогательной оси\n */\n offsetSkidding?: number;\n /**\n * Отступ по главной оси\n */\n offsetDistance?: number;\n onPlacementChange?: (data: { placement?: Placement }) => void;\n /**\n * Содержимое тултипа\n */\n content?: React.ReactNode;\n /**\n * Если передан, то тултип будет показыван/скрыт в зависимости от значения свойства\n */\n shown?: boolean;\n /**\n * Вызывается при каждом изменении видимости тултипа\n */\n onShownChange?: (shown: boolean) => void;\n /**\n * Либо jsx-элемент (div, button, etc.), либо компонент со свойством `getRootRef`, которое применяется к корневому элементу компонента\n */\n children?: React.ReactElement;\n\n action?: 'click' | 'hover';\n /**\n * Актуально только для action=\"hover\"\n * Количество миллисекунд, после которых произойдет показ дропдауна\n */\n showDelay?: HoverPopperProps['showDelay'];\n /**\n * Актуально только для action=\"hover\"\n * Количество миллисекунд, после которых произойдет скрытие дропдауна\n */\n hideDelay?: HoverPopperProps['hideDelay'];\n}\n\nexport const Dropdown: React.FC<DropdownProps> = ({ action = 'click', hideDelay, showDelay, ...popperProps }: DropdownProps) => {\n const platform = usePlatform();\n\n let Component;\n let actionSpecificProps: Partial<DropdownProps> = {};\n\n switch (action) {\n case 'click':\n Component = ClickPopper;\n break;\n case 'hover':\n actionSpecificProps = { hideDelay, showDelay };\n Component = HoverPopper;\n break;\n }\n\n return (\n <Component vkuiClass={getClassName('Dropdown', platform)} {...actionSpecificProps} {...popperProps} />\n );\n};\n"],"file":"Dropdown.js"}
@@ -4,8 +4,7 @@ var _excluded = ["children"];
4
4
  import { createScopedElement } from "../../lib/jsxRuntime";
5
5
  import Caption from "../Typography/Caption/Caption";
6
6
  import "./Footer.css";
7
-
8
- var Footer = function Footer(_ref) {
7
+ export var Footer = function Footer(_ref) {
9
8
  var children = _ref.children,
10
9
  restProps = _objectWithoutProperties(_ref, _excluded);
11
10
 
@@ -17,6 +16,4 @@ var Footer = function Footer(_ref) {
17
16
  vkuiClass: "Footer"
18
17
  }), children);
19
18
  };
20
-
21
- export default Footer;
22
19
  //# sourceMappingURL=Footer.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Footer/Footer.tsx"],"names":["Caption","Footer","children","restProps"],"mappings":";;;;AACA,OAAOA,OAAP;AACA;;AAIA,IAAMC,MAA6B,GAAG,SAAhCA,MAAgC,OAA6C;AAAA,MAA1CC,QAA0C,QAA1CA,QAA0C;AAAA,MAA7BC,SAA6B;;AACjF,SACE,oBAAC,OAAD;AAAS,IAAA,SAAS,EAAC;AAAnB,KAAgCA,SAAhC;AAA2C,IAAA,KAAK,EAAC,GAAjD;AAAqD,IAAA,MAAM,EAAC,SAA5D;AAAsE,IAAA,SAAS,EAAC;AAAhF,MACGD,QADH,CADF;AAKD,CAND;;AAQA,eAAeD,MAAf","sourcesContent":["import * as React from 'react';\nimport Caption from '../Typography/Caption/Caption';\nimport './Footer.css';\n\ntype FooterProps = React.AllHTMLAttributes<HTMLElement>;\n\nconst Footer: React.FC<FooterProps> = ({ children, ...restProps }: FooterProps) => {\n return (\n <Caption Component=\"footer\" {...restProps} level=\"1\" weight=\"regular\" vkuiClass=\"Footer\">\n {children}\n </Caption>\n );\n};\n\nexport default Footer;\n"],"file":"Footer.js"}
1
+ {"version":3,"sources":["../../../../src/components/Footer/Footer.tsx"],"names":["Caption","Footer","children","restProps"],"mappings":";;;;AAEA,OAAOA,OAAP;AACA;AAIA,OAAO,IAAMC,MAA6B,GAAG,SAAhCA,MAAgC,OAG1B;AAAA,MAFjBC,QAEiB,QAFjBA,QAEiB;AAAA,MADdC,SACc;;AACjB,SACE,oBAAC,OAAD;AAAS,IAAA,SAAS,EAAC;AAAnB,KAAgCA,SAAhC;AAA2C,IAAA,KAAK,EAAC,GAAjD;AAAqD,IAAA,MAAM,EAAC,SAA5D;AAAsE,IAAA,SAAS,EAAC;AAAhF,MACGD,QADH,CADF;AAKD,CATM","sourcesContent":["import * as React from 'react';\nimport { HasComponent } from '../../types';\nimport Caption from '../Typography/Caption/Caption';\nimport './Footer.css';\n\nexport type FooterProps = React.AllHTMLAttributes<HTMLElement> & HasComponent;\n\nexport const Footer: React.FC<FooterProps> = ({\n children,\n ...restProps\n}: FooterProps) => {\n return (\n <Caption Component=\"footer\" {...restProps} level=\"1\" weight=\"regular\" vkuiClass=\"Footer\">\n {children}\n </Caption>\n );\n};\n"],"file":"Footer.js"}
@@ -0,0 +1,73 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ var _excluded = ["getRef", "content", "children", "onShownChange", "shown", "showDelay", "hideDelay"];
5
+ import { createScopedElement } from "../../lib/jsxRuntime";
6
+ import * as React from 'react';
7
+ import { Popper } from "../Popper/Popper";
8
+ import { useEventListener } from "../../hooks/useEventListener";
9
+ import { useTimeout } from "../../hooks/useTimeout";
10
+ import { usePatchChildrenRef } from "../../hooks/usePatchChildrenRef";
11
+ import { useIsomorphicLayoutEffect } from "../../lib/useIsomorphicLayoutEffect";
12
+ export var HoverPopper = function HoverPopper(_ref) {
13
+ var getRef = _ref.getRef,
14
+ content = _ref.content,
15
+ children = _ref.children,
16
+ onShownChange = _ref.onShownChange,
17
+ _shown = _ref.shown,
18
+ showDelay = _ref.showDelay,
19
+ _ref$hideDelay = _ref.hideDelay,
20
+ hideDelay = _ref$hideDelay === void 0 ? 150 : _ref$hideDelay,
21
+ restProps = _objectWithoutProperties(_ref, _excluded);
22
+
23
+ var _React$useState = React.useState(_shown || false),
24
+ _React$useState2 = _slicedToArray(_React$useState, 2),
25
+ computedShown = _React$useState2[0],
26
+ setComputedShown = _React$useState2[1];
27
+
28
+ var shown = typeof _shown === 'boolean' ? _shown : computedShown;
29
+
30
+ var setShown = function setShown(value) {
31
+ if (typeof _shown !== 'boolean') {
32
+ setComputedShown(value);
33
+ }
34
+
35
+ typeof onShownChange === 'function' && onShownChange(value);
36
+ };
37
+
38
+ var showTimeout = useTimeout(function () {
39
+ setShown(true);
40
+ }, showDelay);
41
+ var hideTimeout = useTimeout(function () {
42
+ setShown(false);
43
+ }, hideDelay);
44
+
45
+ var _usePatchChildrenRef = usePatchChildrenRef(children),
46
+ _usePatchChildrenRef2 = _slicedToArray(_usePatchChildrenRef, 2),
47
+ childRef = _usePatchChildrenRef2[0],
48
+ child = _usePatchChildrenRef2[1];
49
+
50
+ var onTargetEnter = function onTargetEnter() {
51
+ hideTimeout.clear();
52
+ showTimeout.set();
53
+ };
54
+
55
+ var onTargetLeave = function onTargetLeave() {
56
+ showTimeout.clear();
57
+ hideTimeout.set();
58
+ };
59
+
60
+ var targetEnterListener = useEventListener('pointerenter', onTargetEnter);
61
+ var targetLeaveListener = useEventListener('pointerleave', onTargetLeave);
62
+ useIsomorphicLayoutEffect(function () {
63
+ targetEnterListener.add(childRef.current);
64
+ targetLeaveListener.add(childRef.current);
65
+ }, []);
66
+ return createScopedElement(React.Fragment, null, child, shown && createScopedElement(Popper, _extends({}, restProps, {
67
+ onMouseOver: hideTimeout.clear,
68
+ onMouseOut: onTargetLeave,
69
+ getRef: getRef,
70
+ targetRef: childRef
71
+ }), content));
72
+ };
73
+ //# sourceMappingURL=HoverPopper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/HoverPopper/HoverPopper.tsx"],"names":["React","Popper","useEventListener","useTimeout","usePatchChildrenRef","useIsomorphicLayoutEffect","HoverPopper","getRef","content","children","onShownChange","_shown","shown","showDelay","hideDelay","restProps","useState","computedShown","setComputedShown","setShown","value","showTimeout","hideTimeout","childRef","child","onTargetEnter","clear","set","onTargetLeave","targetEnterListener","targetLeaveListener","add","current"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,MAAT;AACA,SAASC,gBAAT;AACA,SAASC,UAAT;AACA,SAASC,mBAAT;AACA,SAASC,yBAAT;AA6BA,OAAO,IAAMC,WAAuC,GAAG,SAA1CA,WAA0C,OAS/B;AAAA,MARtBC,MAQsB,QARtBA,MAQsB;AAAA,MAPtBC,OAOsB,QAPtBA,OAOsB;AAAA,MANtBC,QAMsB,QANtBA,QAMsB;AAAA,MALtBC,aAKsB,QALtBA,aAKsB;AAAA,MAJfC,MAIe,QAJtBC,KAIsB;AAAA,MAHtBC,SAGsB,QAHtBA,SAGsB;AAAA,4BAFtBC,SAEsB;AAAA,MAFtBA,SAEsB,+BAFV,GAEU;AAAA,MADnBC,SACmB;;AACtB,wBAA0Cf,KAAK,CAACgB,QAAN,CAAeL,MAAM,IAAI,KAAzB,CAA1C;AAAA;AAAA,MAAOM,aAAP;AAAA,MAAsBC,gBAAtB;;AAEA,MAAMN,KAAK,GAAG,OAAOD,MAAP,KAAkB,SAAlB,GAA8BA,MAA9B,GAAuCM,aAArD;;AAEA,MAAME,QAAQ,GAAG,SAAXA,QAAW,CAACC,KAAD,EAAoB;AACnC,QAAI,OAAOT,MAAP,KAAkB,SAAtB,EAAiC;AAC/BO,MAAAA,gBAAgB,CAACE,KAAD,CAAhB;AACD;;AACD,WAAOV,aAAP,KAAyB,UAAzB,IAAuCA,aAAa,CAACU,KAAD,CAApD;AACD,GALD;;AAOA,MAAMC,WAAW,GAAGlB,UAAU,CAAC,YAAM;AACnCgB,IAAAA,QAAQ,CAAC,IAAD,CAAR;AACD,GAF6B,EAE3BN,SAF2B,CAA9B;AAIA,MAAMS,WAAW,GAAGnB,UAAU,CAAC,YAAM;AACnCgB,IAAAA,QAAQ,CAAC,KAAD,CAAR;AACD,GAF6B,EAE3BL,SAF2B,CAA9B;;AAIA,6BAA0BV,mBAAmB,CAACK,QAAD,CAA7C;AAAA;AAAA,MAAOc,QAAP;AAAA,MAAiBC,KAAjB;;AAEA,MAAMC,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1BH,IAAAA,WAAW,CAACI,KAAZ;AACAL,IAAAA,WAAW,CAACM,GAAZ;AACD,GAHD;;AAKA,MAAMC,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1BP,IAAAA,WAAW,CAACK,KAAZ;AACAJ,IAAAA,WAAW,CAACK,GAAZ;AACD,GAHD;;AAKA,MAAME,mBAAmB,GAAG3B,gBAAgB,CAAC,cAAD,EAAiBuB,aAAjB,CAA5C;AACA,MAAMK,mBAAmB,GAAG5B,gBAAgB,CAAC,cAAD,EAAiB0B,aAAjB,CAA5C;AAEAvB,EAAAA,yBAAyB,CAAC,YAAM;AAC9BwB,IAAAA,mBAAmB,CAACE,GAApB,CAAwBR,QAAQ,CAACS,OAAjC;AACAF,IAAAA,mBAAmB,CAACC,GAApB,CAAwBR,QAAQ,CAACS,OAAjC;AACD,GAHwB,EAGtB,EAHsB,CAAzB;AAKA,SACE,oBAAC,KAAD,CAAO,QAAP,QACGR,KADH,EAEGZ,KAAK,IACJ,oBAAC,MAAD,eACMG,SADN;AAEE,IAAA,WAAW,EAAEO,WAAW,CAACI,KAF3B;AAGE,IAAA,UAAU,EAAEE,aAHd;AAIE,IAAA,MAAM,EAAErB,MAJV;AAKE,IAAA,SAAS,EAAEgB;AALb,MAOGf,OAPH,CAHJ,CADF;AAgBD,CAjEM","sourcesContent":["import * as React from 'react';\nimport { Popper, PopperCommonProps } from '../Popper/Popper';\nimport { useEventListener } from '../../hooks/useEventListener';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { usePatchChildrenRef } from '../../hooks/usePatchChildrenRef';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\n\nexport interface HoverPopperProps extends PopperCommonProps {\n /**\n * Содержимое тултипа\n */\n content?: React.ReactNode;\n /**\n * Если передан, то тултип будет показыван/скрыт в зависимости от значения свойства\n */\n shown?: boolean;\n /**\n * Вызывается при каждом изменении видимости тултипа\n */\n onShownChange?: (shown: boolean) => void;\n /**\n * Количество миллисекунд, после которых произойдет показ дропдауна\n */\n showDelay?: number;\n /**\n * Количество миллисекунд, после которых произойдет скрытие дропдауна\n */\n hideDelay?: number;\n /**\n * Либо jsx-элемент (div, button, etc.), либо компонент со свойством `getRootRef`, которое применяется к корневому элементу компонента\n */\n children?: React.ReactElement;\n}\n\nexport const HoverPopper: React.FC<HoverPopperProps> = ({\n getRef,\n content,\n children,\n onShownChange,\n shown: _shown,\n showDelay,\n hideDelay = 150,\n ...restProps\n}: HoverPopperProps) => {\n const [computedShown, setComputedShown] = React.useState(_shown || false);\n\n const shown = typeof _shown === 'boolean' ? _shown : computedShown;\n\n const setShown = (value: boolean) => {\n if (typeof _shown !== 'boolean') {\n setComputedShown(value);\n }\n typeof onShownChange === 'function' && onShownChange(value);\n };\n\n const showTimeout = useTimeout(() => {\n setShown(true);\n }, showDelay);\n\n const hideTimeout = useTimeout(() => {\n setShown(false);\n }, hideDelay);\n\n const [childRef, child] = usePatchChildrenRef(children);\n\n const onTargetEnter = () => {\n hideTimeout.clear();\n showTimeout.set();\n };\n\n const onTargetLeave = () => {\n showTimeout.clear();\n hideTimeout.set();\n };\n\n const targetEnterListener = useEventListener('pointerenter', onTargetEnter);\n const targetLeaveListener = useEventListener('pointerleave', onTargetLeave);\n\n useIsomorphicLayoutEffect(() => {\n targetEnterListener.add(childRef.current);\n targetLeaveListener.add(childRef.current);\n }, []);\n\n return (\n <React.Fragment>\n {child}\n {shown &&\n <Popper\n {...restProps}\n onMouseOver={hideTimeout.clear}\n onMouseOut={onTargetLeave}\n getRef={getRef}\n targetRef={childRef}\n >\n {content}\n </Popper>\n }\n </React.Fragment>\n );\n};\n"],"file":"HoverPopper.js"}
@@ -0,0 +1 @@
1
+ .vkuiPopperPortal{position:relative;z-index:1}.vkuiPopper__arrow-in{content:'';display:block;width:20px;height:8px}[data-popper-placement^=bottom] .vkuiPopper__arrow{bottom:100%}[data-popper-placement^=top] .vkuiPopper__arrow{top:100%}[data-popper-placement^=top] .vkuiPopper__arrow-in{-webkit-transform:rotate(180deg);transform:rotate(180deg)}[data-popper-placement^=left] .vkuiPopper__arrow{left:calc(100% - 6px)}[data-popper-placement^=left] .vkuiPopper__arrow-in{-webkit-transform:rotate(90deg);transform:rotate(90deg)}[data-popper-placement^=right] .vkuiPopper__arrow{right:calc(100% - 6px)}[data-popper-placement^=right] .vkuiPopper__arrow-in{-webkit-transform:rotate(270deg);transform:rotate(270deg)}
@@ -0,0 +1,128 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
3
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
+ var _excluded = ["targetRef", "children", "getRef", "placement", "onPlacementChange", "arrow", "arrowClassName", "offsetDistance", "offsetSkidding", "style"];
6
+ import { createScopedElement } from "../../lib/jsxRuntime";
7
+ import * as React from 'react';
8
+ import { usePopper } from 'react-popper';
9
+ import { AppRootPortal } from "../AppRoot/AppRootPortal";
10
+ import { usePlatform } from "../../hooks/usePlatform";
11
+ import { getClassName } from "../../helpers/getClassName";
12
+ import { useExternRef } from "../../hooks/useExternRef";
13
+ import { useIsomorphicLayoutEffect } from "../../lib/useIsomorphicLayoutEffect";
14
+ import "./Popper.css";
15
+ var ARROW_PADDING = 8;
16
+ var ARROW_WIDTH = 20;
17
+ var ARROW_HEIGHT = 8;
18
+ export var Popper = function Popper(_ref) {
19
+ var targetRef = _ref.targetRef,
20
+ children = _ref.children,
21
+ getRef = _ref.getRef,
22
+ _ref$placement = _ref.placement,
23
+ placement = _ref$placement === void 0 ? 'bottom-start' : _ref$placement,
24
+ onPlacementChange = _ref.onPlacementChange,
25
+ arrow = _ref.arrow,
26
+ arrowClassName = _ref.arrowClassName,
27
+ _ref$offsetDistance = _ref.offsetDistance,
28
+ offsetDistance = _ref$offsetDistance === void 0 ? 8 : _ref$offsetDistance,
29
+ _ref$offsetSkidding = _ref.offsetSkidding,
30
+ offsetSkidding = _ref$offsetSkidding === void 0 ? 0 : _ref$offsetSkidding,
31
+ compStyles = _ref.style,
32
+ restProps = _objectWithoutProperties(_ref, _excluded);
33
+
34
+ var _React$useState = React.useState(null),
35
+ _React$useState2 = _slicedToArray(_React$useState, 2),
36
+ popperNode = _React$useState2[0],
37
+ setPopperNode = _React$useState2[1];
38
+
39
+ var _React$useState3 = React.useState(0),
40
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
41
+ smallTargetOffsetSkidding = _React$useState4[0],
42
+ setSmallTargetOffsetSkidding = _React$useState4[1];
43
+
44
+ var platform = usePlatform();
45
+ var setExternalRef = useExternRef(getRef, setPopperNode);
46
+ var modifiers = [{
47
+ name: 'preventOverflow'
48
+ }, {
49
+ name: 'offset',
50
+ options: {
51
+ offset: [arrow ? offsetSkidding - smallTargetOffsetSkidding : offsetSkidding, arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance]
52
+ }
53
+ }, {
54
+ name: 'flip'
55
+ }];
56
+
57
+ if (arrow) {
58
+ modifiers.push({
59
+ name: 'arrow',
60
+ options: {
61
+ padding: ARROW_PADDING
62
+ }
63
+ });
64
+ }
65
+
66
+ var _usePopper = usePopper(targetRef.current, popperNode, {
67
+ placement: placement,
68
+ modifiers: modifiers
69
+ }),
70
+ styles = _usePopper.styles,
71
+ state = _usePopper.state,
72
+ attributes = _usePopper.attributes;
73
+
74
+ var resolvedPlacement = state === null || state === void 0 ? void 0 : state.placement;
75
+ var isEdgePlacement = !!resolvedPlacement && resolvedPlacement.includes('-'); // true, если поппер отрисован скраю
76
+ // Если поппер рисуется скраю, то нужно опционально сместить его в тех случаях, когда стрелка не дотягивается до
77
+ // таргета из-за маленьких размеров последнего
78
+
79
+ useIsomorphicLayoutEffect(function () {
80
+ if (arrow && isEdgePlacement) {
81
+ var placementDirection = resolvedPlacement.startsWith('bottom') || resolvedPlacement.startsWith('top') ? 'vertical' : 'horizontal';
82
+ var arrowSize = placementDirection === 'vertical' ? ARROW_WIDTH : ARROW_HEIGHT;
83
+ var targetSize = placementDirection === 'vertical' ? targetRef.current.offsetWidth : targetRef.current.offsetHeight;
84
+
85
+ if (targetSize < arrowSize + 2 * ARROW_PADDING) {
86
+ setSmallTargetOffsetSkidding(ARROW_PADDING + arrowSize / 2);
87
+ }
88
+ } else {
89
+ setSmallTargetOffsetSkidding(0);
90
+ }
91
+ }, [arrow, isEdgePlacement]);
92
+ React.useEffect(function () {
93
+ if (resolvedPlacement) {
94
+ onPlacementChange && onPlacementChange({
95
+ placement: resolvedPlacement
96
+ });
97
+ }
98
+ }, [resolvedPlacement]);
99
+ var dropdown = createScopedElement("div", _extends({}, restProps, attributes.popper, {
100
+ vkuiClass: getClassName('Popper', platform),
101
+ ref: setExternalRef,
102
+ style: _objectSpread(_objectSpread({}, compStyles), styles.popper)
103
+ }), arrow && createScopedElement("div", _extends({}, attributes.arrow, {
104
+ vkuiClass: "Popper__arrow",
105
+ "data-popper-arrow": true,
106
+ style: styles.arrow
107
+ }), createScopedElement("svg", {
108
+ vkuiClass: "Popper__arrow-in",
109
+ className: arrowClassName,
110
+ width: "20",
111
+ height: "8",
112
+ viewBox: "0 0 20 8",
113
+ fill: "none",
114
+ xmlns: "http://www.w3.org/2000/svg"
115
+ }, createScopedElement("path", {
116
+ fillRule: "evenodd",
117
+ clipRule: "evenodd",
118
+ d: "M10 0C13 0 15.9999 8 20 8H0C3.9749 8 7 0 10 0Z",
119
+ fill: "currentColor"
120
+ }))), createScopedElement("div", {
121
+ vkuiClass: "Popper__content"
122
+ }, children));
123
+ return createScopedElement(AppRootPortal, {
124
+ forcePortal: true,
125
+ vkuiClass: "PopperPortal"
126
+ }, dropdown);
127
+ };
128
+ //# sourceMappingURL=Popper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/Popper/Popper.tsx"],"names":["React","usePopper","AppRootPortal","usePlatform","getClassName","useExternRef","useIsomorphicLayoutEffect","ARROW_PADDING","ARROW_WIDTH","ARROW_HEIGHT","Popper","targetRef","children","getRef","placement","onPlacementChange","arrow","arrowClassName","offsetDistance","offsetSkidding","compStyles","style","restProps","useState","popperNode","setPopperNode","smallTargetOffsetSkidding","setSmallTargetOffsetSkidding","platform","setExternalRef","modifiers","name","options","offset","push","padding","current","styles","state","attributes","resolvedPlacement","isEdgePlacement","includes","placementDirection","startsWith","arrowSize","targetSize","offsetWidth","offsetHeight","useEffect","dropdown","popper"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { usePopper } from 'react-popper';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport { HasRef } from '../../types';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { getClassName } from '../../helpers/getClassName';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport './Popper.css';\n\nexport type Placement = 'auto' | 'auto-start' | 'auto-end' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' |\n'right-start' | 'right-end' | 'left-start' | 'left-end' | 'top' | 'bottom' | 'left' | 'right';\n\ntype Modifier = {\n name: string;\n options?: {\n [index: string]: any;\n };\n};\n\nexport interface PopperCommonProps extends React.HTMLAttributes<HTMLElement>, HasRef<HTMLElement> {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: Placement;\n /**\n * Отступ по вспомогательной оси\n */\n offsetSkidding?: number;\n /**\n * Отступ по главной оси\n */\n offsetDistance?: number;\n arrow?: boolean;\n arrowClassName?: string;\n onPlacementChange?: (data: { placement?: Placement }) => void;\n}\n\nexport interface PopperProps extends PopperCommonProps {\n targetRef?: React.RefObject<HTMLElement>;\n}\n\nconst ARROW_PADDING = 8;\nconst ARROW_WIDTH = 20;\nconst ARROW_HEIGHT = 8;\n\nexport const Popper: React.FC<PopperProps> = ({\n targetRef,\n children,\n getRef,\n placement = 'bottom-start',\n onPlacementChange,\n arrow,\n arrowClassName,\n offsetDistance = 8,\n offsetSkidding = 0,\n style: compStyles,\n ...restProps\n}: PopperProps) => {\n const [popperNode, setPopperNode] = React.useState(null);\n const [smallTargetOffsetSkidding, setSmallTargetOffsetSkidding] = React.useState(0);\n const platform = usePlatform();\n\n const setExternalRef = useExternRef(getRef, setPopperNode);\n\n const modifiers: Modifier[] = [{\n name: 'preventOverflow',\n }, {\n name: 'offset',\n options: {\n offset: [\n arrow ? offsetSkidding - smallTargetOffsetSkidding : offsetSkidding,\n arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance,\n ],\n },\n }, {\n name: 'flip',\n }];\n\n if (arrow) {\n modifiers.push({\n name: 'arrow',\n options: {\n padding: ARROW_PADDING,\n },\n });\n }\n\n const { styles, state, attributes } = usePopper(targetRef.current, popperNode, {\n placement,\n modifiers,\n });\n\n const resolvedPlacement = state?.placement;\n const isEdgePlacement = !!resolvedPlacement && resolvedPlacement.includes('-'); // true, если поппер отрисован скраю\n\n // Если поппер рисуется скраю, то нужно опционально сместить его в тех случаях, когда стрелка не дотягивается до\n // таргета из-за маленьких размеров последнего\n useIsomorphicLayoutEffect(() => {\n if (arrow && isEdgePlacement) {\n const placementDirection = resolvedPlacement.startsWith('bottom') || resolvedPlacement.startsWith('top') ? 'vertical' : 'horizontal';\n\n const arrowSize = placementDirection === 'vertical' ? ARROW_WIDTH : ARROW_HEIGHT;\n const targetSize = placementDirection === 'vertical' ? targetRef.current.offsetWidth : targetRef.current.offsetHeight;\n\n if (targetSize < arrowSize + 2 * ARROW_PADDING) {\n setSmallTargetOffsetSkidding(ARROW_PADDING + arrowSize / 2);\n }\n } else {\n setSmallTargetOffsetSkidding(0);\n }\n }, [arrow, isEdgePlacement]);\n\n React.useEffect(() => {\n if (resolvedPlacement) {\n onPlacementChange && onPlacementChange({ placement: resolvedPlacement });\n }\n }, [resolvedPlacement]);\n\n const dropdown = (\n <div\n {...restProps}\n {...attributes.popper}\n vkuiClass={getClassName('Popper', platform)}\n ref={setExternalRef}\n style={{ ...compStyles, ...styles.popper }}\n >\n {arrow && (\n <div\n {...attributes.arrow}\n vkuiClass=\"Popper__arrow\"\n data-popper-arrow={true}\n style={styles.arrow}\n >\n <svg vkuiClass=\"Popper__arrow-in\" className={arrowClassName} width=\"20\" height=\"8\" viewBox=\"0 0 20 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M10 0C13 0 15.9999 8 20 8H0C3.9749 8 7 0 10 0Z\" fill=\"currentColor\" />\n </svg>\n </div>\n )}\n <div vkuiClass=\"Popper__content\">\n {children}\n </div>\n </div>\n );\n\n return <AppRootPortal forcePortal vkuiClass=\"PopperPortal\">{dropdown}</AppRootPortal>;\n};\n"],"file":"Popper.js"}
@@ -0,0 +1 @@
1
+ .vkuiRichTooltip{box-shadow:0 0 4px rgba(0,0,0,.04),0 4px 32px rgba(0,0,0,.16);border-radius:8px;background:#fff;background:var(--background_content);-webkit-animation:vkui-popper-fadein .2s ease;animation:vkui-popper-fadein .2s ease}.vkuiRichTooltip__arrow{color:#fff;color:var(--background_content)}
@@ -0,0 +1,29 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ var _excluded = ["children", "arrow"];
5
+ import { createScopedElement } from "../../lib/jsxRuntime";
6
+ import { HoverPopper } from "../HoverPopper/HoverPopper";
7
+ import { getClassName } from "../../helpers/getClassName";
8
+ import { usePlatform } from "../../hooks/usePlatform";
9
+ import { useAppearance } from "../../hooks/useAppearance";
10
+ import { classNames } from "../../lib/classNames";
11
+ import { prefixClass } from "../../lib/prefixClass";
12
+ import "./RichTooltip.css"; // Приходится избегать экстендов от HoverPopperProps и PopperProps, потому что react-docgen не умеет в Omit.
13
+ // Ждём либо фикса react-docgen (что вряд ли), либо переезда на react-docgen-typescript, где такой проблемы нет.
14
+
15
+ export var RichTooltip = function RichTooltip(_ref) {
16
+ var children = _ref.children,
17
+ _ref$arrow = _ref.arrow,
18
+ arrow = _ref$arrow === void 0 ? true : _ref$arrow,
19
+ popperProps = _objectWithoutProperties(_ref, _excluded);
20
+
21
+ var platform = usePlatform();
22
+ var appearance = useAppearance();
23
+ return createScopedElement(HoverPopper, _extends({
24
+ vkuiClass: classNames(getClassName('RichTooltip', platform), _defineProperty({}, "RichTooltip--".concat(appearance), !!appearance)),
25
+ arrow: arrow,
26
+ arrowClassName: prefixClass('RichTooltip__arrow')
27
+ }, popperProps), children);
28
+ };
29
+ //# sourceMappingURL=RichTooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/RichTooltip/RichTooltip.tsx"],"names":["HoverPopper","getClassName","usePlatform","useAppearance","classNames","prefixClass","RichTooltip","children","arrow","popperProps","platform","appearance"],"mappings":";;;;;AACA,SAASA,WAAT;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AACA,SAASC,aAAT;AACA,SAASC,UAAT;AACA,SAASC,WAAT;AAEA,2B,CAEA;AACA;;AA0CA,OAAO,IAAMC,WAAuC,GAAG,SAA1CA,WAA0C,OAAkE;AAAA,MAA/DC,QAA+D,QAA/DA,QAA+D;AAAA,wBAArDC,KAAqD;AAAA,MAArDA,KAAqD,2BAA7C,IAA6C;AAAA,MAApCC,WAAoC;;AACvH,MAAMC,QAAQ,GAAGR,WAAW,EAA5B;AACA,MAAMS,UAAU,GAAGR,aAAa,EAAhC;AAEA,SACE,oBAAC,WAAD;AACE,IAAA,SAAS,EAAEC,UAAU,CAACH,YAAY,CAAC,aAAD,EAAgBS,QAAhB,CAAb,6CACFC,UADE,GACa,CAAC,CAACA,UADf,EADvB;AAIE,IAAA,KAAK,EAAEH,KAJT;AAKE,IAAA,cAAc,EAAEH,WAAW,CAAC,oBAAD;AAL7B,KAMMI,WANN,GAQGF,QARH,CADF;AAYD,CAhBM","sourcesContent":["import * as React from 'react';\nimport { HoverPopper } from '../HoverPopper/HoverPopper';\nimport { getClassName } from '../../helpers/getClassName';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useAppearance } from '../../hooks/useAppearance';\nimport { classNames } from '../../lib/classNames';\nimport { prefixClass } from '../../lib/prefixClass';\nimport { Placement } from '../Popper/Popper';\nimport './RichTooltip.css';\n\n// Приходится избегать экстендов от HoverPopperProps и PopperProps, потому что react-docgen не умеет в Omit.\n// Ждём либо фикса react-docgen (что вряд ли), либо переезда на react-docgen-typescript, где такой проблемы нет.\nexport interface RichTooltipProps {\n /**\n * Содержимое тултипа\n */\n content?: React.ReactNode;\n /**\n * Если передан, то тултип будет показыван/скрыт в зависимости от значения свойства\n */\n shown?: boolean;\n /**\n * Вызывается при каждом изменении видимости тултипа\n */\n onShownChange?: (shown: boolean) => void;\n /**\n * Количество миллисекунд, после которых произойдет показ дропдауна\n */\n showDelay?: number;\n /**\n * Количество миллисекунд, после которых произойдет скрытие дропдауна\n */\n hideDelay?: number;\n /**\n * Либо jsx-элемент (div, button, etc.), либо компонент со свойством `getRootRef`, которое применяется к корневому элементу компонента\n */\n children?: React.ReactElement;\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: Placement;\n /**\n * Отступ по вспомогательной оси\n */\n offsetSkidding?: number;\n /**\n * Отступ по главной оси\n */\n offsetDistance?: number;\n onPlacementChange?: (data: { placement?: Placement }) => void;\n arrow?: boolean;\n}\n\nexport const RichTooltip: React.FC<RichTooltipProps> = ({ children, arrow = true, ...popperProps }: RichTooltipProps) => {\n const platform = usePlatform();\n const appearance = useAppearance();\n\n return (\n <HoverPopper\n vkuiClass={classNames(getClassName('RichTooltip', platform), {\n [`RichTooltip--${appearance}`]: !!appearance,\n })}\n arrow={arrow}\n arrowClassName={prefixClass('RichTooltip__arrow')}\n {...popperProps}\n >\n {children}\n </HoverPopper>\n );\n};\n"],"file":"RichTooltip.js"}
@@ -3,11 +3,11 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
5
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
6
- var _excluded = ["children", "Component", "onClick", "onKeyDown", "activeEffectDelay", "stopPropagation", "getRootRef", "sizeX", "hasMouse", "hasHover", "hoverMode", "hasActive", "activeMode", "focusVisibleMode"];
6
+ var _excluded = ["children", "Component", "onClick", "onKeyDown", "activeEffectDelay", "stopPropagation", "getRootRef", "sizeX", "hasMouse", "deviceHasHover", "hasHover", "hoverMode", "hasActive", "activeMode", "focusVisibleMode"];
7
7
  import { createScopedElement } from "../../lib/jsxRuntime";
8
8
  import * as React from 'react';
9
9
  import mitt from 'mitt';
10
- import { hasHover as deviceHasHover, noop } from '@vkontakte/vkjs';
10
+ import { noop } from '@vkontakte/vkjs';
11
11
  import { Touch } from "../Touch/Touch";
12
12
  import TouchRootContext from "../Touch/TouchContext";
13
13
  import { classNames } from "../../lib/classNames";
@@ -124,8 +124,9 @@ var Tappable = function Tappable(_ref) {
124
124
  getRootRef = _ref.getRootRef,
125
125
  sizeX = _ref.sizeX,
126
126
  hasMouse = _ref.hasMouse,
127
+ deviceHasHover = _ref.deviceHasHover,
127
128
  _ref$hasHover = _ref.hasHover,
128
- _hasHover = _ref$hasHover === void 0 ? deviceHasHover : _ref$hasHover,
129
+ _hasHover = _ref$hasHover === void 0 ? true : _ref$hasHover,
129
130
  _ref$hoverMode = _ref.hoverMode,
130
131
  hoverMode = _ref$hoverMode === void 0 ? 'background' : _ref$hoverMode,
131
132
  _ref$hasActive = _ref.hasActive,
@@ -161,7 +162,7 @@ var Tappable = function Tappable(_ref) {
161
162
 
162
163
  var hovered = _hovered && !props.disabled;
163
164
  var hasActive = _hasActive && !childHover && !props.disabled;
164
- var hasHover = _hasHover && !childHover;
165
+ var hasHover = deviceHasHover && _hasHover && !childHover;
165
166
  var isCustomElement = Component !== 'a' && Component !== 'button' && !props.contentEditable;
166
167
  var isPresetHoverMode = ['opacity', 'background'].includes(hoverMode);
167
168
  var isPresetActiveMode = ['opacity', 'background'].includes(activeMode);
@@ -315,7 +316,8 @@ var Tappable = function Tappable(_ref) {
315
316
 
316
317
  export default withAdaptivity(Tappable, {
317
318
  sizeX: true,
318
- hasMouse: true
319
+ hasMouse: true,
320
+ deviceHasHover: true
319
321
  });
320
322
 
321
323
  function Wave(_ref5) {