@vkontakte/vkui 5.9.1 → 5.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/dist/cjs/components/Alert/Alert.d.ts +3 -3
  2. package/dist/cjs/components/Alert/Alert.d.ts.map +1 -1
  3. package/dist/cjs/components/Alert/Alert.js +5 -3
  4. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  5. package/dist/cjs/components/CalendarRange/CalendarRange.d.ts +1 -1
  6. package/dist/cjs/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  7. package/dist/cjs/components/CalendarRange/CalendarRange.js +1 -2
  8. package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
  9. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +1 -1
  10. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  11. package/dist/cjs/components/CustomScrollView/CustomScrollView.d.ts +4 -2
  12. package/dist/cjs/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  13. package/dist/cjs/components/CustomScrollView/CustomScrollView.js +17 -5
  14. package/dist/cjs/components/CustomScrollView/CustomScrollView.js.map +1 -1
  15. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +4 -1
  16. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  17. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  18. package/dist/cjs/components/FormLayout/FormLayout.d.ts +3 -3
  19. package/dist/cjs/components/FormLayout/FormLayout.d.ts.map +1 -1
  20. package/dist/cjs/components/FormLayout/FormLayout.js +5 -2
  21. package/dist/cjs/components/FormLayout/FormLayout.js.map +1 -1
  22. package/dist/cjs/components/Gallery/Gallery.d.ts.map +1 -1
  23. package/dist/cjs/components/Gallery/Gallery.js +3 -10
  24. package/dist/cjs/components/Gallery/Gallery.js.map +1 -1
  25. package/dist/cjs/components/Gallery/hooks.d.ts +2 -0
  26. package/dist/cjs/components/Gallery/hooks.d.ts.map +1 -0
  27. package/dist/cjs/components/Gallery/hooks.js +52 -0
  28. package/dist/cjs/components/Gallery/hooks.js.map +1 -0
  29. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.d.ts +3 -3
  30. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
  31. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +5 -2
  32. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  33. package/dist/cjs/components/ModalRoot/ModalRoot.js +6 -8
  34. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  35. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +3 -3
  36. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts.map +1 -1
  37. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js +6 -3
  38. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  39. package/dist/cjs/lib/floating/adapters.d.ts +1 -1
  40. package/dist/cjs/lib/floating/adapters.d.ts.map +1 -1
  41. package/dist/cjs/lib/floating/adapters.js +1 -1
  42. package/dist/cjs/lib/floating/adapters.js.map +1 -1
  43. package/dist/cjs/lib/floating/index.d.ts +1 -1
  44. package/dist/cjs/lib/floating/index.d.ts.map +1 -1
  45. package/dist/cjs/lib/floating/index.js +1 -1
  46. package/dist/cjs/lib/floating/index.js.map +1 -1
  47. package/dist/cjs/lib/floating/types.d.ts +2 -2
  48. package/dist/cjs/lib/floating/types.d.ts.map +1 -1
  49. package/dist/components/Alert/Alert.d.ts +3 -3
  50. package/dist/components/Alert/Alert.d.ts.map +1 -1
  51. package/dist/components/Alert/Alert.js +5 -3
  52. package/dist/components/Alert/Alert.js.map +1 -1
  53. package/dist/components/CalendarRange/CalendarRange.d.ts +1 -1
  54. package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  55. package/dist/components/CalendarRange/CalendarRange.js +1 -2
  56. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  57. package/dist/components/ChipsSelect/ChipsSelect.js +1 -1
  58. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  59. package/dist/components/CustomScrollView/CustomScrollView.d.ts +4 -2
  60. package/dist/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  61. package/dist/components/CustomScrollView/CustomScrollView.js +17 -5
  62. package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
  63. package/dist/components/CustomSelect/CustomSelect.d.ts +4 -1
  64. package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  65. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  66. package/dist/components/FormLayout/FormLayout.d.ts +3 -3
  67. package/dist/components/FormLayout/FormLayout.d.ts.map +1 -1
  68. package/dist/components/FormLayout/FormLayout.js +5 -2
  69. package/dist/components/FormLayout/FormLayout.js.map +1 -1
  70. package/dist/components/Gallery/Gallery.d.ts.map +1 -1
  71. package/dist/components/Gallery/Gallery.js +3 -10
  72. package/dist/components/Gallery/Gallery.js.map +1 -1
  73. package/dist/components/Gallery/hooks.d.ts +2 -0
  74. package/dist/components/Gallery/hooks.d.ts.map +1 -0
  75. package/dist/components/Gallery/hooks.js +41 -0
  76. package/dist/components/Gallery/hooks.js.map +1 -0
  77. package/dist/components/ModalPageHeader/ModalPageHeader.d.ts +3 -3
  78. package/dist/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
  79. package/dist/components/ModalPageHeader/ModalPageHeader.js +5 -2
  80. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  81. package/dist/components/ModalRoot/ModalRoot.js +6 -8
  82. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  83. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +3 -3
  84. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts.map +1 -1
  85. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js +6 -3
  86. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  87. package/dist/components.css +5 -5
  88. package/dist/components.css.map +1 -1
  89. package/dist/components.js.tmp +3719 -2461
  90. package/dist/cssm/components/Alert/Alert.d.ts +3 -3
  91. package/dist/cssm/components/Alert/Alert.d.ts.map +1 -1
  92. package/dist/cssm/components/Alert/Alert.js +3 -2
  93. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  94. package/dist/cssm/components/Button/Button.module.css +3 -1
  95. package/dist/cssm/components/CalendarRange/CalendarRange.d.ts +1 -1
  96. package/dist/cssm/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  97. package/dist/cssm/components/CalendarRange/CalendarRange.js +1 -1
  98. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  99. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +1 -1
  100. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  101. package/dist/cssm/components/CustomScrollView/CustomScrollView.d.ts +4 -2
  102. package/dist/cssm/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  103. package/dist/cssm/components/CustomScrollView/CustomScrollView.js +4 -2
  104. package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
  105. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +4 -1
  106. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  107. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  108. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.module.css +0 -5
  109. package/dist/cssm/components/FormLayout/FormLayout.d.ts +3 -3
  110. package/dist/cssm/components/FormLayout/FormLayout.d.ts.map +1 -1
  111. package/dist/cssm/components/FormLayout/FormLayout.js +4 -2
  112. package/dist/cssm/components/FormLayout/FormLayout.js.map +1 -1
  113. package/dist/cssm/components/Gallery/Gallery.d.ts.map +1 -1
  114. package/dist/cssm/components/Gallery/Gallery.js +2 -7
  115. package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
  116. package/dist/cssm/components/Gallery/hooks.d.ts +2 -0
  117. package/dist/cssm/components/Gallery/hooks.d.ts.map +1 -0
  118. package/dist/cssm/components/Gallery/hooks.js +39 -0
  119. package/dist/cssm/components/Gallery/hooks.js.map +1 -0
  120. package/dist/cssm/components/ModalPage/ModalPage.module.css +1 -4
  121. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.d.ts +3 -3
  122. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
  123. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +4 -2
  124. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  125. package/dist/cssm/components/ModalRoot/ModalRoot.js +6 -8
  126. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  127. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.module.css +7 -1
  128. package/dist/cssm/components/Snackbar/Snackbar.module.css +1 -1
  129. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +3 -3
  130. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts.map +1 -1
  131. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js +4 -2
  132. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  133. package/dist/cssm/lib/floating/adapters.d.ts +1 -1
  134. package/dist/cssm/lib/floating/adapters.d.ts.map +1 -1
  135. package/dist/cssm/lib/floating/adapters.js +1 -1
  136. package/dist/cssm/lib/floating/adapters.js.map +1 -1
  137. package/dist/cssm/lib/floating/index.d.ts +1 -1
  138. package/dist/cssm/lib/floating/index.d.ts.map +1 -1
  139. package/dist/cssm/lib/floating/index.js +1 -1
  140. package/dist/cssm/lib/floating/index.js.map +1 -1
  141. package/dist/cssm/lib/floating/types.d.ts +2 -2
  142. package/dist/cssm/lib/floating/types.d.ts.map +1 -1
  143. package/dist/cssm/lib/floating/types.js.map +1 -1
  144. package/dist/lib/floating/adapters.d.ts +1 -1
  145. package/dist/lib/floating/adapters.d.ts.map +1 -1
  146. package/dist/lib/floating/adapters.js +1 -1
  147. package/dist/lib/floating/adapters.js.map +1 -1
  148. package/dist/lib/floating/index.d.ts +1 -1
  149. package/dist/lib/floating/index.d.ts.map +1 -1
  150. package/dist/lib/floating/index.js +1 -1
  151. package/dist/lib/floating/index.js.map +1 -1
  152. package/dist/lib/floating/types.d.ts +2 -2
  153. package/dist/lib/floating/types.d.ts.map +1 -1
  154. package/dist/lib/floating/types.js.map +1 -1
  155. package/dist/vkui.css +5 -5
  156. package/dist/vkui.css.map +1 -1
  157. package/dist/vkui.js.tmp +3719 -2461
  158. package/package.json +2 -2
  159. package/src/components/Alert/Alert.tsx +10 -3
  160. package/src/components/Button/Button.module.css +3 -1
  161. package/src/components/CalendarRange/CalendarRange.tsx +0 -1
  162. package/src/components/ChipsSelect/ChipsSelect.tsx +1 -1
  163. package/src/components/CustomScrollView/CustomScrollView.tsx +13 -2
  164. package/src/components/CustomSelect/CustomSelect.tsx +5 -1
  165. package/src/components/CustomSelectOption/CustomSelectOption.module.css +0 -5
  166. package/src/components/FormLayout/FormLayout.tsx +8 -3
  167. package/src/components/Gallery/Gallery.tsx +2 -6
  168. package/src/components/Gallery/hooks.ts +39 -0
  169. package/src/components/ModalPage/ModalPage.module.css +1 -4
  170. package/src/components/ModalPageHeader/ModalPageHeader.tsx +8 -4
  171. package/src/components/ModalRoot/ModalRoot.tsx +6 -5
  172. package/src/components/PanelHeaderButton/PanelHeaderButton.module.css +6 -1
  173. package/src/components/Snackbar/Snackbar.module.css +1 -1
  174. package/src/components/VisuallyHiddenInput/VisuallyHiddenInput.tsx +6 -2
  175. package/src/lib/floating/adapters.ts +1 -1
  176. package/src/lib/floating/index.ts +1 -1
  177. package/src/lib/floating/types.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ModalRoot/ModalRoot.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { withContext } from '../../hoc/withContext';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { DOMProps, withDOM } from '../../lib/dom';\nimport { getNavId } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { setTransformStyle } from '../../lib/styles';\nimport { transitionEvent } from '../../lib/supportEvents';\nimport { rubber } from '../../lib/touch';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { ConfigProviderContext } from '../ConfigProvider/ConfigProviderContext';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport TouchRootContext from '../Touch/TouchContext';\nimport { ModalRootContext, ModalRootContextInterface } from './ModalRootContext';\nimport { MODAL_PAGE_DEFAULT_PERCENT_HEIGHT } from './constants';\nimport { ModalRootWithDOMProps, ModalsStateEntry, ModalType, TranslateRange } from './types';\nimport { ModalTransitionProps, withModalManager } from './useModalManager';\nimport styles from './ModalRoot.module.css';\n\nconst warn = warnOnce('ModalRoot');\n\nfunction numberInRange(number: number, range: TranslateRange | undefined) {\n if (!range) {\n return false;\n }\n return number >= range[0] && number <= range[1];\n}\n\nfunction rangeTranslate(number: number) {\n return clamp(number, 0, 98);\n}\n\ninterface ModalRootState {\n touchDown?: boolean;\n dragging?: boolean;\n modalOpenedLog: string[];\n}\n\nclass ModalRootTouchComponent extends React.Component<\n ModalRootWithDOMProps & DOMProps & ModalTransitionProps,\n ModalRootState\n> {\n constructor(props: ModalRootWithDOMProps & ModalTransitionProps) {\n super(props);\n this.state = {\n touchDown: false,\n dragging: false,\n modalOpenedLog: [],\n };\n\n this.maskElementRef = React.createRef();\n\n this.modalRootContext = {\n updateModalHeight: this.updateModalHeight,\n registerModal: ({ id, ...data }) => Object.assign(this.props.getModalState(id) ?? {}, data),\n onClose: () => this.props.onExit(),\n isInsideModal: true,\n };\n\n this.frameIds = {};\n }\n\n private documentScrolling = false;\n private readonly maskElementRef: React.RefObject<HTMLDivElement>;\n private readonly viewportRef = React.createRef<HTMLDivElement>();\n private maskAnimationFrame: number | undefined = undefined;\n private readonly modalRootContext: ModalRootContextInterface;\n private readonly frameIds: {\n [index: string]: number;\n };\n private restoreFocusTo: HTMLElement | undefined | null = undefined;\n\n get timeout(): number {\n return this.props.platform === Platform.IOS ? 400 : 320;\n }\n\n get document(): Document {\n return this.props.document as Document;\n }\n\n get window(): Window {\n return this.props.window as Window;\n }\n\n getModals() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n componentDidMount() {\n // Отслеживаем изменение размеров viewport\n this.window?.addEventListener('resize', this.updateModalHeight, false);\n }\n\n componentWillUnmount() {\n this.toggleDocumentScrolling(true);\n this.window.removeEventListener('resize', this.updateModalHeight, false);\n }\n\n componentDidUpdate(prevProps: ModalRootWithDOMProps & ModalTransitionProps) {\n // transition phase 2: animate exiting modal\n if (this.props.exitingModal && this.props.exitingModal !== prevProps.exitingModal) {\n this.closeModal(this.props.exitingModal);\n }\n\n // transition phase 3: animate entering modal\n if (this.props.enteringModal && this.props.enteringModal !== prevProps.enteringModal) {\n const { enteringModal } = this.props;\n const enteringState = this.props.getModalState(enteringModal);\n this.props.onEnter();\n this.waitTransitionFinish(enteringState, () => {\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transitionDelay = '';\n }\n this.props.onEntered(enteringModal);\n });\n\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transitionDelay = this.props.delayEnter\n ? `${this.timeout}ms`\n : '';\n this.animateTranslate(enteringState, enteringState.translateY);\n this.setMaskOpacity(enteringState, 1);\n }\n }\n\n // focus restoration\n if (this.props.activeModal && !prevProps.activeModal) {\n this.restoreFocusTo = this.document.activeElement as HTMLElement;\n }\n if (!this.props.activeModal && !this.props.exitingModal && this.restoreFocusTo) {\n this.restoreFocusTo.focus();\n this.restoreFocusTo = null;\n }\n\n this.toggleDocumentScrolling(!this.props.activeModal && !this.props.exitingModal);\n }\n\n /* Отключает скролл документа */\n toggleDocumentScrolling(enabled: boolean) {\n if (this.documentScrolling === enabled) {\n return;\n }\n this.documentScrolling = enabled;\n\n if (enabled) {\n // Здесь нужен последний аргумент с такими же параметрами, потому что\n // некоторые браузеры на странных вендорах типа Meizu не удаляют обработчик.\n // https://github.com/VKCOM/VKUI/issues/444\n this.window.removeEventListener('touchmove', this.preventTouch, {\n // @ts-expect-error: TS2769 В интерфейсе EventListenerOptions нет поля passive\n passive: false,\n });\n } else {\n this.window.addEventListener('touchmove', this.preventTouch, {\n passive: false,\n });\n }\n }\n\n preventTouch = (event: any) => {\n if (!event) {\n return false;\n }\n while (event.originalEvent) {\n event = event.originalEvent;\n }\n if (event.preventDefault) {\n event.preventDefault();\n }\n return false;\n };\n\n checkPageContentHeight() {\n const modalState = this.props.getModalState(this.props.activeModal);\n\n if (modalState?.type === ModalType.PAGE && modalState?.modalElement) {\n const prevModalState = { ...modalState };\n initPageModal(modalState);\n const currentModalState = { ...modalState };\n\n let needAnimate = false;\n\n if (prevModalState.expandable === currentModalState.expandable) {\n if (prevModalState.translateYFrom !== currentModalState.translateYFrom) {\n needAnimate = true;\n }\n } else {\n needAnimate = true;\n }\n\n if (needAnimate) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n }\n }\n\n updateModalHeight = () => {\n const modalState = this.props.getModalState(this.props.activeModal);\n\n if (modalState && modalState.type === ModalType.PAGE) {\n if (this.props.enteringModal) {\n this.waitTransitionFinish(modalState, () => {\n requestAnimationFrame(() => this.checkPageContentHeight());\n });\n } else {\n requestAnimationFrame(() => this.checkPageContentHeight());\n }\n }\n };\n\n closeModal(id: string) {\n // Сбрасываем состояния, которые могут помешать закрытию модального окна\n this.setState({ touchDown: false });\n\n const prevModalState = this.props.getModalState(id);\n\n if (!prevModalState) {\n id && warn(`closeActiveModal: модальное окно (страница) ${id} не существует`, 'error');\n return;\n }\n if (!this.state.modalOpenedLog.length) {\n this.setState((prevState) => ({\n modalOpenedLog: [...prevState.modalOpenedLog, id],\n }));\n }\n const nextModalState = this.props.getModalState(this.props.activeModal);\n const nextIsPage = !!nextModalState && nextModalState.type === ModalType.PAGE;\n\n const prevIsPage = !!prevModalState && prevModalState.type === ModalType.PAGE;\n this.waitTransitionFinish(prevModalState, () => this.props.onExited(id));\n const exitTranslate =\n prevIsPage &&\n nextIsPage &&\n (prevModalState.translateY ?? 0) <= (nextModalState?.translateYFrom ?? 0) &&\n !this.props.isBack\n ? (nextModalState?.translateYFrom ?? 0) + 10\n : 100;\n this.animateTranslate(prevModalState, exitTranslate);\n\n if (!nextModalState) {\n // NOTE: was only for clean exit\n this.setMaskOpacity(prevModalState, 0);\n this.setState({ modalOpenedLog: [] });\n prevModalState.translateY = undefined;\n } else if (nextModalState.id && !this.state.modalOpenedLog.includes(nextModalState.id)) {\n nextModalState.translateY = undefined;\n this.setState((prevState) => ({\n modalOpenedLog: [...prevState.modalOpenedLog, nextModalState.id!],\n }));\n }\n }\n\n onTouchMove = (e: TouchEvent) => {\n if (this.props.exitingModal) {\n return;\n }\n const modalState = this.props.getModalState(this.props.activeModal);\n if (!modalState) {\n return;\n }\n\n if (modalState.type === ModalType.PAGE) {\n return this.onPageTouchMove(e, modalState);\n }\n\n if (modalState.type === ModalType.CARD) {\n return this.onCardTouchMove(e, modalState);\n }\n };\n\n onPageTouchMove(event: TouchEvent, modalState: ModalsStateEntry) {\n const { shiftY, originalEvent } = event;\n const target = originalEvent.target as HTMLElement;\n\n if (!event.isY) {\n if (this.viewportRef.current?.contains(target)) {\n originalEvent.preventDefault();\n }\n return;\n }\n\n if (!modalState.innerElement?.contains(target)) {\n return originalEvent.preventDefault();\n }\n\n originalEvent.stopPropagation();\n\n const { expandable, contentScrolled, collapsed, expanded } = modalState;\n\n if (!this.state.touchDown) {\n modalState.touchStartContentScrollTop = modalState.contentElement?.scrollTop ?? 0;\n this.setState({ touchDown: true });\n }\n\n if (contentScrolled) {\n return;\n }\n\n if (modalState.touchMovePositive === null) {\n modalState.touchMovePositive = shiftY > 0;\n }\n\n if (\n !modalState.expandable ||\n collapsed ||\n (expanded && modalState.touchMovePositive && modalState.touchStartContentScrollTop === 0) ||\n modalState.headerElement?.contains(target)\n ) {\n originalEvent.preventDefault();\n\n if ((!expandable && shiftY < 0) || !this.window) {\n return;\n }\n\n !this.state.dragging && this.setState({ dragging: true });\n\n const shiftYPercent = (shiftY / this.window.innerHeight) * 100;\n const shiftYCurrent = rubber(shiftYPercent, 72, 0.8, this.props.platform !== Platform.IOS);\n\n modalState.touchShiftYPercent = shiftYPercent;\n modalState.translateYCurrent = rangeTranslate((modalState.translateY ?? 0) + shiftYCurrent);\n\n this.animateTranslate(modalState, modalState.translateYCurrent);\n this.setMaskOpacity(modalState);\n }\n }\n\n onCardTouchMove(event: TouchEvent, modalState: ModalsStateEntry) {\n const { originalEvent, shiftY } = event;\n const target = originalEvent.target as HTMLElement;\n if (modalState.innerElement?.contains(target)) {\n if (!this.state.touchDown) {\n this.setState({ touchDown: true, dragging: true });\n }\n\n const shiftYPercent = (shiftY / modalState.innerElement.offsetHeight) * 100;\n const shiftYCurrent = rubber(shiftYPercent, 72, 1.2, this.props.platform !== Platform.IOS);\n\n modalState.touchShiftYPercent = shiftYPercent;\n modalState.translateYCurrent = Math.max(0, (modalState.translateY ?? 0) + shiftYCurrent);\n\n this.animateTranslate(modalState, modalState.translateYCurrent);\n this.setMaskOpacity(modalState);\n }\n }\n\n onTouchEnd = (e: TouchEvent) => {\n const modalState = this.props.getModalState(this.props.activeModal);\n\n if (modalState?.type === ModalType.PAGE) {\n return this.onPageTouchEnd(e, modalState);\n }\n\n if (modalState?.type === ModalType.CARD) {\n return this.onCardTouchEnd(e, modalState);\n }\n };\n\n onPageTouchEnd(event: TouchEvent, modalState: ModalsStateEntry) {\n const { startY, shiftY } = event;\n\n modalState.contentScrolled = false;\n modalState.touchMovePositive = null;\n\n let setStateCallback;\n\n if (this.state.dragging && this.window) {\n const shiftYEndPercent = ((startY + shiftY) / this.window.innerHeight) * 100;\n\n let translateY = modalState.translateYCurrent ?? 0;\n const expectTranslateY =\n (translateY / event.duration) *\n 240 *\n 0.6 *\n ((modalState.touchShiftYPercent ?? 0) < 0 ? -1 : 1);\n translateY = rangeTranslate(translateY + expectTranslateY);\n\n if (modalState.settlingHeight !== 100) {\n if (numberInRange(translateY, modalState.expandedRange)) {\n translateY = modalState.expandedRange?.[0] ?? 0;\n } else if (numberInRange(translateY, modalState.collapsedRange)) {\n translateY = modalState.translateYFrom ?? 0;\n } else if (numberInRange(translateY, modalState.hiddenRange)) {\n translateY = 100;\n } else {\n translateY = modalState.translateYFrom ?? 0;\n }\n } else {\n if (numberInRange(translateY, [0, 25])) {\n translateY = 0;\n } else {\n translateY = 100;\n }\n }\n\n if (translateY !== 100 && shiftYEndPercent >= 75) {\n translateY = 100;\n }\n\n modalState.translateY = translateY;\n modalState.translateYCurrent = translateY;\n modalState.collapsed = translateY > 0 && translateY < shiftYEndPercent;\n modalState.expanded = translateY === 0;\n modalState.hidden = translateY === 100;\n\n if (modalState.hidden) {\n this.props.onExit();\n }\n\n setStateCallback = () => {\n if (!modalState.hidden) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n\n this.setMaskOpacity(modalState);\n };\n }\n\n this.setState(\n {\n touchDown: false,\n dragging: false,\n },\n setStateCallback,\n );\n }\n\n onCardTouchEnd({ duration }: TouchEvent, modalState: ModalsStateEntry) {\n let setStateCallback;\n\n if (this.state.dragging) {\n let translateY = modalState.translateYCurrent ?? 0;\n\n const expectTranslateY =\n (translateY / duration) * 240 * 0.6 * ((modalState.touchShiftYPercent ?? 0) < 0 ? -1 : 1);\n translateY = Math.max(0, translateY + expectTranslateY);\n\n if (translateY >= 30) {\n translateY = 100;\n } else {\n translateY = 0;\n }\n\n modalState.translateY = translateY;\n modalState.hidden = translateY === 100;\n\n if (modalState.hidden) {\n this.props.onExit();\n }\n\n setStateCallback = () => {\n if (!modalState.hidden) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n\n this.setMaskOpacity(modalState);\n };\n }\n\n this.setState(\n {\n touchDown: false,\n dragging: false,\n },\n setStateCallback,\n );\n }\n\n onScroll = (e: React.SyntheticEvent) => {\n const activeModal = this.props.activeModal;\n\n const target = e.target as HTMLElement;\n\n if (!activeModal) {\n return;\n }\n const modalState = this.props.getModalState(activeModal);\n if (modalState?.type === ModalType.PAGE && modalState?.contentElement?.contains(target)) {\n modalState.contentScrolled = true;\n\n if (modalState.contentScrollStopTimeout) {\n clearTimeout(modalState.contentScrollStopTimeout);\n }\n\n modalState.contentScrollStopTimeout = setTimeout(() => {\n if (modalState.contentScrolled) {\n modalState.contentScrolled = false;\n }\n }, 250);\n }\n };\n\n waitTransitionFinish(modalState: ModalsStateEntry | undefined, eventHandler: () => void) {\n if (transitionEvent.supported) {\n const onceHandler = () => {\n modalState?.innerElement?.removeEventListener(transitionEvent.name as string, onceHandler);\n eventHandler();\n };\n\n modalState?.innerElement?.addEventListener(transitionEvent.name as string, onceHandler);\n } else {\n setTimeout(eventHandler, this.timeout);\n }\n }\n\n /**\n * Анимирует сдвиг модалки\n *\n * @param {ModalsStateEntry} modalState\n * @param {number} percent Процент сдвига: 0 – полностью открыта, 100 – полностью закрыта\n */\n animateTranslate(modalState: ModalsStateEntry, percent: number | undefined) {\n const frameId = `animateTranslateFrame${modalState.id}`;\n\n cancelAnimationFrame(this.frameIds[frameId]);\n\n this.frameIds[frameId] = requestAnimationFrame(() => {\n setTransformStyle(modalState.innerElement, `translate3d(0, ${percent}%, 0)`);\n });\n }\n\n /* Устанавливает прозрачность для полупрозрачной подложки */\n setMaskOpacity(modalState: ModalsStateEntry, forceOpacity: number | null = null) {\n if (forceOpacity === null && this.props.history?.[0] !== modalState.id) {\n return;\n }\n if (this.maskAnimationFrame) {\n cancelAnimationFrame(this.maskAnimationFrame);\n }\n this.maskAnimationFrame = requestAnimationFrame(() => {\n if (this.maskElementRef.current) {\n const { translateY = 0, translateYCurrent = 0 } = modalState;\n\n const opacity =\n forceOpacity === null\n ? 1 - (translateYCurrent - translateY) / (100 - translateY) || 0\n : forceOpacity;\n this.maskElementRef.current.style.opacity = clamp(opacity, 0, 100).toString();\n this.maskElementRef.current.style.transitionDelay =\n opacity && this.props.delayEnter ? `${this.timeout}ms` : '';\n }\n });\n }\n\n render() {\n const { activeModal, exitingModal, enteringModal } = this.props;\n const { touchDown, dragging } = this.state;\n\n if (!activeModal && !exitingModal) {\n return null;\n }\n\n return (\n <TouchRootContext.Provider value={true}>\n <ModalRootContext.Provider value={this.modalRootContext}>\n <Touch\n className={classNames(\n styles['ModalRoot'],\n this.props.configProvider?.hasCustomPanelHeaderAfter &&\n styles['ModalRoot--hasCustomPanelHeaderAfterSlot'],\n touchDown &&\n classNames(styles['ModalRoot--touched'], 'vkuiInternalModalRoot--touched'),\n !!(enteringModal || exitingModal) &&\n classNames(styles['ModalRoot--switching'], 'vkuiInternalModalRoot--switching'),\n )}\n onMove={this.onTouchMove}\n onEnd={this.onTouchEnd}\n onScroll={this.onScroll}\n >\n <div\n className={styles['ModalRoot__mask']}\n onClick={this.props.onExit}\n ref={this.maskElementRef}\n />\n <div className={styles['ModalRoot__viewport']} ref={this.viewportRef}>\n {this.getModals().map((Modal) => {\n const modalId = getNavId(Modal.props, warn);\n const _modalState = this.props.getModalState(modalId);\n if ((modalId !== activeModal && modalId !== exitingModal) || !_modalState) {\n return null;\n }\n const modalState = { ..._modalState };\n\n const isPage = modalState.type === ModalType.PAGE;\n const key = `modal-${modalId}`;\n\n return (\n <FocusTrap\n key={key}\n getRootRef={(e) => {\n const modalState = this.props.getModalState(modalId);\n if (modalState) {\n modalState.modalElement = e;\n }\n }}\n onClose={this.props.onExit}\n timeout={this.timeout}\n className={classNames(\n styles['ModalRoot__modal'],\n\n dragging && 'vkuiInternalModalRoot__modal--dragging',\n\n isPage && modalState.expandable && 'vkuiInternalModalRoot__modal--expandable',\n isPage && modalState.collapsed && 'vkuiInternalModalRoot__modal--collapsed',\n )}\n restoreFocus={false}\n >\n {Modal}\n </FocusTrap>\n );\n })}\n </div>\n </Touch>\n </ModalRootContext.Provider>\n </TouchRootContext.Provider>\n );\n }\n}\n\nexport const ModalRootTouch = withContext(\n withPlatform(\n withDOM<ModalRootWithDOMProps>(withModalManager(initModal)(ModalRootTouchComponent)),\n ),\n ConfigProviderContext,\n 'configProvider',\n);\n\n/**\n * Инициализирует модалку перед анимацией открытия\n */\nfunction initModal(modalState: ModalsStateEntry) {\n switch (modalState.type) {\n case ModalType.PAGE:\n modalState.settlingHeight = modalState.settlingHeight || MODAL_PAGE_DEFAULT_PERCENT_HEIGHT;\n return initPageModal(modalState);\n case ModalType.CARD:\n return initCardModal(modalState);\n default:\n process.env.NODE_ENV === 'development' &&\n warn(`initActiveModal: modalState.type=\"${modalState.type}\" не поддерживается`, 'error');\n }\n}\n\nfunction initPageModal(modalState: ModalsStateEntry) {\n const { contentElement, bottomInset } = modalState;\n const contentElementHeight = (contentElement?.firstElementChild as HTMLElement).scrollHeight;\n const bottomInsetHeight = bottomInset?.offsetHeight || 0;\n const contentHeight = contentElementHeight + bottomInsetHeight;\n let prevTranslateY = modalState.translateY;\n\n modalState.expandable =\n contentHeight > (contentElement?.clientHeight ?? 0) ||\n modalState.settlingHeight === 100 ||\n modalState.expanded;\n\n let collapsed = false;\n let expanded = false;\n let translateYFrom;\n let translateY;\n let expandedRange: TranslateRange;\n let collapsedRange: TranslateRange;\n let hiddenRange: TranslateRange;\n\n if (modalState.expandable) {\n translateYFrom = 100 - (modalState.settlingHeight ?? 0);\n\n const shiftHalf = translateYFrom / 2;\n const visiblePart = 100 - translateYFrom;\n\n expandedRange = [0, shiftHalf];\n collapsedRange = [shiftHalf, translateYFrom + visiblePart / 4];\n hiddenRange = [translateYFrom + visiblePart / 4, 100];\n\n collapsed = translateYFrom > 0;\n expanded = translateYFrom <= 0;\n translateY = translateYFrom;\n } else {\n const headerHeight = modalState.headerElement?.offsetHeight ?? 0;\n const height = contentHeight + headerHeight;\n\n translateYFrom =\n 100 - (height / (modalState.innerElement?.parentElement?.offsetHeight ?? 0)) * 100;\n translateY = translateYFrom;\n\n expandedRange = [translateY, translateY + 25];\n collapsedRange = [translateY + 25, translateY + 25];\n hiddenRange = [translateY + 25, translateY + 100];\n }\n\n // Если модалка может открываться на весь экран, и новый сдвиг больше предыдущего, то откроем её на весь экран\n if (\n (modalState.expandable && translateY > (prevTranslateY ?? 100)) ||\n modalState.settlingHeight === 100\n ) {\n translateY = 0;\n }\n\n // Если модалка уже раскрыта обновляем состояния\n if (translateY === 0) {\n expanded = true;\n collapsed = false;\n }\n\n modalState.expandedRange = expandedRange;\n modalState.collapsedRange = collapsedRange;\n modalState.hiddenRange = hiddenRange;\n modalState.translateY = translateY;\n modalState.translateYFrom = translateYFrom;\n modalState.collapsed = collapsed;\n modalState.expanded = expanded;\n}\n\nfunction initCardModal(modalState: ModalsStateEntry) {\n modalState.translateY = 0;\n}\n"],"names":["React","classNames","clamp","withContext","withPlatform","withDOM","getNavId","Platform","setTransformStyle","transitionEvent","rubber","warnOnce","ConfigProviderContext","FocusTrap","Touch","TouchRootContext","ModalRootContext","MODAL_PAGE_DEFAULT_PERCENT_HEIGHT","ModalType","withModalManager","warn","numberInRange","number","range","rangeTranslate","ModalRootTouchComponent","props","documentScrolling","maskElementRef","viewportRef","createRef","maskAnimationFrame","undefined","modalRootContext","frameIds","restoreFocusTo","preventTouch","event","originalEvent","preventDefault","updateModalHeight","modalState","getModalState","activeModal","type","PAGE","enteringModal","waitTransitionFinish","requestAnimationFrame","checkPageContentHeight","onTouchMove","e","exitingModal","onPageTouchMove","CARD","onCardTouchMove","onTouchEnd","onPageTouchEnd","onCardTouchEnd","onScroll","target","contentElement","contains","contentScrolled","contentScrollStopTimeout","clearTimeout","setTimeout","state","touchDown","dragging","modalOpenedLog","registerModal","id","data","Object","assign","onClose","onExit","isInsideModal","timeout","platform","IOS","document","window","getModals","Children","toArray","children","componentDidMount","addEventListener","componentWillUnmount","toggleDocumentScrolling","removeEventListener","componentDidUpdate","prevProps","closeModal","enteringState","onEnter","innerElement","style","transitionDelay","onEntered","delayEnter","animateTranslate","translateY","setMaskOpacity","activeElement","focus","enabled","passive","modalElement","prevModalState","initPageModal","currentModalState","needAnimate","expandable","translateYFrom","setState","length","prevState","nextModalState","nextIsPage","prevIsPage","onExited","exitTranslate","isBack","includes","shiftY","isY","current","stopPropagation","collapsed","expanded","touchStartContentScrollTop","scrollTop","touchMovePositive","headerElement","shiftYPercent","innerHeight","shiftYCurrent","touchShiftYPercent","translateYCurrent","offsetHeight","Math","max","startY","setStateCallback","shiftYEndPercent","expectTranslateY","duration","settlingHeight","expandedRange","collapsedRange","hiddenRange","hidden","eventHandler","supported","onceHandler","name","percent","frameId","cancelAnimationFrame","forceOpacity","history","opacity","toString","render","Provider","value","className","configProvider","hasCustomPanelHeaderAfter","onMove","onEnd","div","onClick","ref","map","Modal","modalId","_modalState","isPage","key","getRootRef","restoreFocus","Component","ModalRootTouch","initModal","initCardModal","process","env","NODE_ENV","bottomInset","contentElementHeight","firstElementChild","scrollHeight","bottomInsetHeight","contentHeight","prevTranslateY","clientHeight","shiftHalf","visiblePart","headerHeight","height","parentElement"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/ModalRoot/ModalRoot.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { withContext } from '../../hoc/withContext';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { DOMProps, withDOM } from '../../lib/dom';\nimport { getNavId } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { setTransformStyle } from '../../lib/styles';\nimport { transitionEvent } from '../../lib/supportEvents';\nimport { rubber } from '../../lib/touch';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { ConfigProviderContext } from '../ConfigProvider/ConfigProviderContext';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport TouchRootContext from '../Touch/TouchContext';\nimport { ModalRootContext, ModalRootContextInterface } from './ModalRootContext';\nimport { MODAL_PAGE_DEFAULT_PERCENT_HEIGHT } from './constants';\nimport { ModalRootWithDOMProps, ModalsStateEntry, ModalType, TranslateRange } from './types';\nimport { ModalTransitionProps, withModalManager } from './useModalManager';\nimport styles from './ModalRoot.module.css';\n\nconst warn = warnOnce('ModalRoot');\n\nfunction numberInRange(number: number, range: TranslateRange | undefined) {\n if (!range) {\n return false;\n }\n return number >= range[0] && number <= range[1];\n}\n\nfunction rangeTranslate(number: number) {\n return clamp(number, 0, 98);\n}\n\ninterface ModalRootState {\n touchDown?: boolean;\n dragging?: boolean;\n modalOpenedLog: string[];\n}\n\nclass ModalRootTouchComponent extends React.Component<\n ModalRootWithDOMProps & DOMProps & ModalTransitionProps,\n ModalRootState\n> {\n constructor(props: ModalRootWithDOMProps & ModalTransitionProps) {\n super(props);\n this.state = {\n touchDown: false,\n dragging: false,\n modalOpenedLog: [],\n };\n\n this.maskElementRef = React.createRef();\n\n this.modalRootContext = {\n updateModalHeight: this.updateModalHeight,\n registerModal: ({ id, ...data }) => Object.assign(this.props.getModalState(id) ?? {}, data),\n onClose: () => this.props.onExit(),\n isInsideModal: true,\n };\n\n this.frameIds = {};\n }\n\n private documentScrolling = false;\n private readonly maskElementRef: React.RefObject<HTMLDivElement>;\n private readonly viewportRef = React.createRef<HTMLDivElement>();\n private maskAnimationFrame: number | undefined = undefined;\n private readonly modalRootContext: ModalRootContextInterface;\n private readonly frameIds: {\n [index: string]: number;\n };\n private restoreFocusTo: HTMLElement | undefined | null = undefined;\n\n get timeout(): number {\n return this.props.platform === Platform.IOS ? 400 : 320;\n }\n\n get document(): Document {\n return this.props.document as Document;\n }\n\n get window(): Window {\n return this.props.window as Window;\n }\n\n getModals() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n componentDidMount() {\n // Отслеживаем изменение размеров viewport\n this.window?.addEventListener('resize', this.updateModalHeight, false);\n }\n\n componentWillUnmount() {\n this.toggleDocumentScrolling(true);\n this.window.removeEventListener('resize', this.updateModalHeight, false);\n }\n\n componentDidUpdate(prevProps: ModalRootWithDOMProps & ModalTransitionProps) {\n // transition phase 2: animate exiting modal\n if (this.props.exitingModal && this.props.exitingModal !== prevProps.exitingModal) {\n this.closeModal(this.props.exitingModal);\n }\n\n // transition phase 3: animate entering modal\n if (this.props.enteringModal && this.props.enteringModal !== prevProps.enteringModal) {\n const { enteringModal } = this.props;\n const enteringState = this.props.getModalState(enteringModal);\n this.props.onEnter();\n this.waitTransitionFinish(enteringState, () => {\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transitionDelay = '';\n }\n this.props.onEntered(enteringModal);\n });\n\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transitionDelay = this.props.delayEnter\n ? `${this.timeout}ms`\n : '';\n this.animateTranslate(enteringState, enteringState.translateY);\n this.setMaskOpacity(enteringState, 1);\n }\n }\n\n // focus restoration\n if (this.props.activeModal && !prevProps.activeModal) {\n this.restoreFocusTo = this.document.activeElement as HTMLElement;\n }\n if (!this.props.activeModal && !this.props.exitingModal && this.restoreFocusTo) {\n this.restoreFocusTo.focus();\n this.restoreFocusTo = null;\n }\n\n this.toggleDocumentScrolling(!this.props.activeModal && !this.props.exitingModal);\n }\n\n /* Отключает скролл документа */\n toggleDocumentScrolling(enabled: boolean) {\n if (this.documentScrolling === enabled) {\n return;\n }\n this.documentScrolling = enabled;\n\n if (enabled) {\n // Здесь нужен последний аргумент с такими же параметрами, потому что\n // некоторые браузеры на странных вендорах типа Meizu не удаляют обработчик.\n // https://github.com/VKCOM/VKUI/issues/444\n this.window.removeEventListener('touchmove', this.preventTouch, {\n // @ts-expect-error: TS2769 В интерфейсе EventListenerOptions нет поля passive\n passive: false,\n });\n } else {\n this.window.addEventListener('touchmove', this.preventTouch, {\n passive: false,\n });\n }\n }\n\n preventTouch = (event: any) => {\n if (!event) {\n return false;\n }\n while (event.originalEvent) {\n event = event.originalEvent;\n }\n if (event.preventDefault) {\n event.preventDefault();\n }\n return false;\n };\n\n checkPageContentHeight() {\n const modalState = this.props.getModalState(this.props.activeModal);\n\n if (modalState?.type === ModalType.PAGE && modalState?.modalElement) {\n const prevModalState = { ...modalState };\n initPageModal(modalState);\n const currentModalState = { ...modalState };\n\n let needAnimate = false;\n\n if (prevModalState.expandable === currentModalState.expandable) {\n if (prevModalState.translateYFrom !== currentModalState.translateYFrom) {\n needAnimate = true;\n }\n } else {\n needAnimate = true;\n }\n\n if (needAnimate) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n }\n }\n\n updateModalHeight = () => {\n const modalState = this.props.getModalState(this.props.activeModal);\n\n if (modalState && modalState.type === ModalType.PAGE) {\n if (this.props.enteringModal) {\n this.waitTransitionFinish(modalState, () => {\n requestAnimationFrame(() => this.checkPageContentHeight());\n });\n } else {\n requestAnimationFrame(() => this.checkPageContentHeight());\n }\n }\n };\n\n closeModal(id: string) {\n // Сбрасываем состояния, которые могут помешать закрытию модального окна\n this.setState({ touchDown: false });\n\n const prevModalState = this.props.getModalState(id);\n\n if (!prevModalState) {\n id && warn(`closeActiveModal: модальное окно (страница) ${id} не существует`, 'error');\n return;\n }\n if (!this.state.modalOpenedLog.length) {\n this.setState((prevState) => ({\n modalOpenedLog: [...prevState.modalOpenedLog, id],\n }));\n }\n const nextModalState = this.props.getModalState(this.props.activeModal);\n const nextIsPage = !!nextModalState && nextModalState.type === ModalType.PAGE;\n\n const prevIsPage = !!prevModalState && prevModalState.type === ModalType.PAGE;\n this.waitTransitionFinish(prevModalState, () => this.props.onExited(id));\n const exitTranslate =\n prevIsPage &&\n nextIsPage &&\n (prevModalState.translateY ?? 0) <= (nextModalState?.translateYFrom ?? 0) &&\n !this.props.isBack\n ? (nextModalState?.translateYFrom ?? 0) + 10\n : 100;\n this.animateTranslate(prevModalState, exitTranslate);\n\n if (!nextModalState) {\n // NOTE: was only for clean exit\n this.setMaskOpacity(prevModalState, 0);\n this.setState({ modalOpenedLog: [] });\n prevModalState.translateY = undefined;\n } else if (nextModalState.id && !this.state.modalOpenedLog.includes(nextModalState.id)) {\n nextModalState.translateY = undefined;\n this.setState((prevState) => ({\n modalOpenedLog: [...prevState.modalOpenedLog, nextModalState.id!],\n }));\n }\n }\n\n onTouchMove = (e: TouchEvent) => {\n if (this.props.exitingModal) {\n return;\n }\n const modalState = this.props.getModalState(this.props.activeModal);\n if (!modalState) {\n return;\n }\n\n if (modalState.type === ModalType.PAGE) {\n return this.onPageTouchMove(e, modalState);\n }\n\n if (modalState.type === ModalType.CARD) {\n return this.onCardTouchMove(e, modalState);\n }\n };\n\n onPageTouchMove(event: TouchEvent, modalState: ModalsStateEntry) {\n const { shiftY, originalEvent } = event;\n const target = originalEvent.target as HTMLElement;\n\n if (!event.isY) {\n if (this.viewportRef.current?.contains(target)) {\n originalEvent.preventDefault();\n }\n return;\n }\n\n if (!modalState.innerElement?.contains(target)) {\n return originalEvent.preventDefault();\n }\n\n originalEvent.stopPropagation();\n\n const { expandable, contentScrolled, collapsed, expanded } = modalState;\n\n if (!this.state.touchDown) {\n modalState.touchStartContentScrollTop = modalState.contentElement?.scrollTop ?? 0;\n this.setState({ touchDown: true });\n }\n\n if (contentScrolled) {\n return;\n }\n\n if (modalState.touchMovePositive === null) {\n modalState.touchMovePositive = shiftY > 0;\n }\n\n if (\n !modalState.expandable ||\n collapsed ||\n (expanded && modalState.touchMovePositive && modalState.touchStartContentScrollTop === 0) ||\n modalState.headerElement?.contains(target)\n ) {\n originalEvent.preventDefault();\n\n if ((!expandable && shiftY < 0) || !this.window) {\n return;\n }\n\n !this.state.dragging && this.setState({ dragging: true });\n\n const shiftYPercent = (shiftY / this.window.innerHeight) * 100;\n const shiftYCurrent = rubber(shiftYPercent, 72, 0.8, this.props.platform !== Platform.IOS);\n\n modalState.touchShiftYPercent = shiftYPercent;\n modalState.translateYCurrent = rangeTranslate((modalState.translateY ?? 0) + shiftYCurrent);\n\n this.animateTranslate(modalState, modalState.translateYCurrent);\n this.setMaskOpacity(modalState);\n }\n }\n\n onCardTouchMove(event: TouchEvent, modalState: ModalsStateEntry) {\n const { originalEvent, shiftY } = event;\n const target = originalEvent.target as HTMLElement;\n if (modalState.innerElement?.contains(target)) {\n if (!this.state.touchDown) {\n this.setState({ touchDown: true, dragging: true });\n }\n\n const shiftYPercent = (shiftY / modalState.innerElement.offsetHeight) * 100;\n const shiftYCurrent = rubber(shiftYPercent, 72, 1.2, this.props.platform !== Platform.IOS);\n\n modalState.touchShiftYPercent = shiftYPercent;\n modalState.translateYCurrent = Math.max(0, (modalState.translateY ?? 0) + shiftYCurrent);\n\n this.animateTranslate(modalState, modalState.translateYCurrent);\n this.setMaskOpacity(modalState);\n }\n }\n\n onTouchEnd = (e: TouchEvent) => {\n const modalState = this.props.getModalState(this.props.activeModal);\n\n if (modalState?.type === ModalType.PAGE) {\n return this.onPageTouchEnd(e, modalState);\n }\n\n if (modalState?.type === ModalType.CARD) {\n return this.onCardTouchEnd(e, modalState);\n }\n };\n\n onPageTouchEnd(event: TouchEvent, modalState: ModalsStateEntry) {\n const { startY, shiftY } = event;\n\n modalState.contentScrolled = false;\n modalState.touchMovePositive = null;\n\n let setStateCallback;\n\n if (this.state.dragging && this.window) {\n const shiftYEndPercent = ((startY + shiftY) / this.window.innerHeight) * 100;\n\n let translateY = modalState.translateYCurrent ?? 0;\n const expectTranslateY =\n (translateY / event.duration) *\n 240 *\n 0.6 *\n ((modalState.touchShiftYPercent ?? 0) < 0 ? -1 : 1);\n translateY = rangeTranslate(translateY + expectTranslateY);\n\n if (modalState.settlingHeight !== 100) {\n if (numberInRange(translateY, modalState.expandedRange)) {\n translateY = modalState.expandedRange?.[0] ?? 0;\n } else if (numberInRange(translateY, modalState.collapsedRange)) {\n translateY = modalState.translateYFrom ?? 0;\n } else if (numberInRange(translateY, modalState.hiddenRange)) {\n translateY = 100;\n } else {\n translateY = modalState.translateYFrom ?? 0;\n }\n } else {\n if (numberInRange(translateY, [0, 25])) {\n translateY = 0;\n } else {\n translateY = 100;\n }\n }\n\n if (translateY !== 100 && shiftYEndPercent >= 75) {\n translateY = 100;\n }\n\n modalState.translateY = translateY;\n modalState.translateYCurrent = translateY;\n modalState.collapsed = numberInRange(translateY, modalState.collapsedRange);\n modalState.expanded = translateY === 0;\n modalState.hidden = translateY === 100;\n\n if (modalState.hidden) {\n this.props.onExit();\n }\n\n setStateCallback = () => {\n if (!modalState.hidden) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n\n this.setMaskOpacity(modalState);\n };\n }\n\n this.setState(\n {\n touchDown: false,\n dragging: false,\n },\n setStateCallback,\n );\n }\n\n onCardTouchEnd({ duration }: TouchEvent, modalState: ModalsStateEntry) {\n let setStateCallback;\n\n if (this.state.dragging) {\n let translateY = modalState.translateYCurrent ?? 0;\n\n const expectTranslateY =\n (translateY / duration) * 240 * 0.6 * ((modalState.touchShiftYPercent ?? 0) < 0 ? -1 : 1);\n translateY = Math.max(0, translateY + expectTranslateY);\n\n if (translateY >= 30) {\n translateY = 100;\n } else {\n translateY = 0;\n }\n\n modalState.translateY = translateY;\n modalState.hidden = translateY === 100;\n\n if (modalState.hidden) {\n this.props.onExit();\n }\n\n setStateCallback = () => {\n if (!modalState.hidden) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n\n this.setMaskOpacity(modalState);\n };\n }\n\n this.setState(\n {\n touchDown: false,\n dragging: false,\n },\n setStateCallback,\n );\n }\n\n onScroll = (e: React.SyntheticEvent) => {\n const activeModal = this.props.activeModal;\n\n const target = e.target as HTMLElement;\n\n if (!activeModal) {\n return;\n }\n const modalState = this.props.getModalState(activeModal);\n if (modalState?.type === ModalType.PAGE && modalState?.contentElement?.contains(target)) {\n modalState.contentScrolled = true;\n\n if (modalState.contentScrollStopTimeout) {\n clearTimeout(modalState.contentScrollStopTimeout);\n }\n\n modalState.contentScrollStopTimeout = setTimeout(() => {\n if (modalState.contentScrolled) {\n modalState.contentScrolled = false;\n }\n }, 250);\n }\n };\n\n waitTransitionFinish(modalState: ModalsStateEntry | undefined, eventHandler: () => void) {\n if (transitionEvent.supported) {\n const onceHandler = () => {\n modalState?.innerElement?.removeEventListener(transitionEvent.name as string, onceHandler);\n eventHandler();\n };\n\n modalState?.innerElement?.addEventListener(transitionEvent.name as string, onceHandler);\n } else {\n setTimeout(eventHandler, this.timeout);\n }\n }\n\n /**\n * Анимирует сдвиг модалки\n *\n * @param {ModalsStateEntry} modalState\n * @param {number} percent Процент сдвига: 0 – полностью открыта, 100 – полностью закрыта\n */\n animateTranslate(modalState: ModalsStateEntry, percent: number | undefined) {\n const frameId = `animateTranslateFrame${modalState.id}`;\n\n cancelAnimationFrame(this.frameIds[frameId]);\n\n this.frameIds[frameId] = requestAnimationFrame(() => {\n setTransformStyle(modalState.innerElement, `translate3d(0, ${percent}%, 0)`);\n });\n }\n\n /* Устанавливает прозрачность для полупрозрачной подложки */\n setMaskOpacity(modalState: ModalsStateEntry, forceOpacity: number | null = null) {\n if (forceOpacity === null && this.props.history?.[0] !== modalState.id) {\n return;\n }\n if (this.maskAnimationFrame) {\n cancelAnimationFrame(this.maskAnimationFrame);\n }\n this.maskAnimationFrame = requestAnimationFrame(() => {\n if (this.maskElementRef.current) {\n const { translateY = 0, translateYCurrent = 0 } = modalState;\n\n const opacity =\n forceOpacity === null\n ? 1 - (translateYCurrent - translateY) / (100 - translateY) || 0\n : forceOpacity;\n this.maskElementRef.current.style.opacity = clamp(opacity, 0, 100).toString();\n this.maskElementRef.current.style.transitionDelay =\n opacity && this.props.delayEnter ? `${this.timeout}ms` : '';\n }\n });\n }\n\n render() {\n const { activeModal, exitingModal, enteringModal } = this.props;\n const { touchDown, dragging } = this.state;\n\n if (!activeModal && !exitingModal) {\n return null;\n }\n\n return (\n <TouchRootContext.Provider value={true}>\n <ModalRootContext.Provider value={this.modalRootContext}>\n <Touch\n className={classNames(\n styles['ModalRoot'],\n this.props.configProvider?.hasCustomPanelHeaderAfter &&\n styles['ModalRoot--hasCustomPanelHeaderAfterSlot'],\n touchDown &&\n classNames(styles['ModalRoot--touched'], 'vkuiInternalModalRoot--touched'),\n !!(enteringModal || exitingModal) &&\n classNames(styles['ModalRoot--switching'], 'vkuiInternalModalRoot--switching'),\n )}\n onMove={this.onTouchMove}\n onEnd={this.onTouchEnd}\n onScroll={this.onScroll}\n >\n <div\n className={styles['ModalRoot__mask']}\n onClick={this.props.onExit}\n ref={this.maskElementRef}\n />\n <div className={styles['ModalRoot__viewport']} ref={this.viewportRef}>\n {this.getModals().map((Modal) => {\n const modalId = getNavId(Modal.props, warn);\n const _modalState = this.props.getModalState(modalId);\n if ((modalId !== activeModal && modalId !== exitingModal) || !_modalState) {\n return null;\n }\n const modalState = { ..._modalState };\n\n const isPage = modalState.type === ModalType.PAGE;\n const key = `modal-${modalId}`;\n\n return (\n <FocusTrap\n key={key}\n getRootRef={(e) => {\n const modalState = this.props.getModalState(modalId);\n if (modalState) {\n modalState.modalElement = e;\n }\n }}\n onClose={this.props.onExit}\n timeout={this.timeout}\n className={classNames(\n styles['ModalRoot__modal'],\n\n dragging && 'vkuiInternalModalRoot__modal--dragging',\n\n isPage && modalState.expandable && 'vkuiInternalModalRoot__modal--expandable',\n isPage && modalState.collapsed && 'vkuiInternalModalRoot__modal--collapsed',\n )}\n restoreFocus={false}\n >\n {Modal}\n </FocusTrap>\n );\n })}\n </div>\n </Touch>\n </ModalRootContext.Provider>\n </TouchRootContext.Provider>\n );\n }\n}\n\nexport const ModalRootTouch = withContext(\n withPlatform(\n withDOM<ModalRootWithDOMProps>(withModalManager(initModal)(ModalRootTouchComponent)),\n ),\n ConfigProviderContext,\n 'configProvider',\n);\n\n/**\n * Инициализирует модалку перед анимацией открытия\n */\nfunction initModal(modalState: ModalsStateEntry) {\n switch (modalState.type) {\n case ModalType.PAGE:\n modalState.settlingHeight = modalState.settlingHeight || MODAL_PAGE_DEFAULT_PERCENT_HEIGHT;\n return initPageModal(modalState);\n case ModalType.CARD:\n return initCardModal(modalState);\n default:\n process.env.NODE_ENV === 'development' &&\n warn(`initActiveModal: modalState.type=\"${modalState.type}\" не поддерживается`, 'error');\n }\n}\n\nfunction initPageModal(modalState: ModalsStateEntry) {\n const { contentElement, bottomInset } = modalState;\n const contentElementHeight = (contentElement?.firstElementChild as HTMLElement).scrollHeight;\n const bottomInsetHeight = bottomInset?.offsetHeight || 0;\n const contentHeight = contentElementHeight + bottomInsetHeight;\n let prevTranslateY = modalState.translateY;\n\n modalState.expandable =\n contentHeight > (contentElement?.clientHeight ?? 0) ||\n modalState.settlingHeight === 100 ||\n modalState.expanded;\n\n let collapsed = false;\n let expanded = false;\n let translateYFrom;\n let translateY;\n let expandedRange: TranslateRange;\n let collapsedRange: TranslateRange | undefined;\n let hiddenRange: TranslateRange;\n\n const hasCollapsedState = Boolean(modalState.expandable && modalState.settlingHeight !== 100);\n if (modalState.expandable) {\n translateYFrom = 100 - (modalState.settlingHeight ?? 0);\n\n const shiftHalf = translateYFrom / 2;\n const visiblePart = 100 - translateYFrom;\n\n expandedRange = [0, shiftHalf];\n collapsedRange = hasCollapsedState ? [shiftHalf, translateYFrom + visiblePart / 4] : undefined;\n hiddenRange = [translateYFrom + visiblePart / 4, 100];\n\n collapsed = hasCollapsedState && translateYFrom > 0;\n expanded = translateYFrom <= 0;\n translateY = translateYFrom;\n } else {\n const headerHeight = modalState.headerElement?.offsetHeight ?? 0;\n const height = contentHeight + headerHeight;\n\n translateYFrom =\n 100 - (height / (modalState.innerElement?.parentElement?.offsetHeight ?? 0)) * 100;\n translateY = translateYFrom;\n\n expandedRange = [translateY, translateY + 25];\n collapsedRange = undefined;\n hiddenRange = [translateY + 25, translateY + 100];\n }\n\n // Если модалка может открываться на весь экран, и новый сдвиг больше предыдущего, то откроем её на весь экран\n if (\n (modalState.expandable && translateY > (prevTranslateY ?? 100)) ||\n modalState.settlingHeight === 100\n ) {\n translateY = 0;\n }\n\n // Если модалка уже раскрыта обновляем состояния\n if (translateY === 0) {\n expanded = true;\n collapsed = false;\n }\n\n modalState.expandedRange = expandedRange;\n modalState.collapsedRange = collapsedRange;\n modalState.hiddenRange = hiddenRange;\n modalState.translateY = translateY;\n modalState.translateYFrom = translateYFrom;\n modalState.collapsed = collapsed;\n modalState.expanded = expanded;\n}\n\nfunction initCardModal(modalState: ModalsStateEntry) {\n modalState.translateY = 0;\n}\n"],"names":["React","classNames","clamp","withContext","withPlatform","withDOM","getNavId","Platform","setTransformStyle","transitionEvent","rubber","warnOnce","ConfigProviderContext","FocusTrap","Touch","TouchRootContext","ModalRootContext","MODAL_PAGE_DEFAULT_PERCENT_HEIGHT","ModalType","withModalManager","warn","numberInRange","number","range","rangeTranslate","ModalRootTouchComponent","props","documentScrolling","maskElementRef","viewportRef","createRef","maskAnimationFrame","undefined","modalRootContext","frameIds","restoreFocusTo","preventTouch","event","originalEvent","preventDefault","updateModalHeight","modalState","getModalState","activeModal","type","PAGE","enteringModal","waitTransitionFinish","requestAnimationFrame","checkPageContentHeight","onTouchMove","e","exitingModal","onPageTouchMove","CARD","onCardTouchMove","onTouchEnd","onPageTouchEnd","onCardTouchEnd","onScroll","target","contentElement","contains","contentScrolled","contentScrollStopTimeout","clearTimeout","setTimeout","state","touchDown","dragging","modalOpenedLog","registerModal","id","data","Object","assign","onClose","onExit","isInsideModal","timeout","platform","IOS","document","window","getModals","Children","toArray","children","componentDidMount","addEventListener","componentWillUnmount","toggleDocumentScrolling","removeEventListener","componentDidUpdate","prevProps","closeModal","enteringState","onEnter","innerElement","style","transitionDelay","onEntered","delayEnter","animateTranslate","translateY","setMaskOpacity","activeElement","focus","enabled","passive","modalElement","prevModalState","initPageModal","currentModalState","needAnimate","expandable","translateYFrom","setState","length","prevState","nextModalState","nextIsPage","prevIsPage","onExited","exitTranslate","isBack","includes","shiftY","isY","current","stopPropagation","collapsed","expanded","touchStartContentScrollTop","scrollTop","touchMovePositive","headerElement","shiftYPercent","innerHeight","shiftYCurrent","touchShiftYPercent","translateYCurrent","offsetHeight","Math","max","startY","setStateCallback","shiftYEndPercent","expectTranslateY","duration","settlingHeight","expandedRange","collapsedRange","hiddenRange","hidden","eventHandler","supported","onceHandler","name","percent","frameId","cancelAnimationFrame","forceOpacity","history","opacity","toString","render","Provider","value","className","configProvider","hasCustomPanelHeaderAfter","onMove","onEnd","div","onClick","ref","map","Modal","modalId","_modalState","isPage","key","getRootRef","restoreFocus","Component","ModalRootTouch","initModal","initCardModal","process","env","NODE_ENV","bottomInset","contentElementHeight","firstElementChild","scrollHeight","bottomInsetHeight","contentHeight","prevTranslateY","clientHeight","hasCollapsedState","Boolean","shiftHalf","visiblePart","headerHeight","height","parentElement"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import { HasRef } from '../../types';
3
- export interface VisuallyHiddenInputProps extends React.InputHTMLAttributes<HTMLInputElement>, HasRef<HTMLInputElement> {
2
+ import { HasRef, HasRootRef } from '../../types';
3
+ export interface VisuallyHiddenInputProps extends React.InputHTMLAttributes<HTMLInputElement>, HasRootRef<HTMLInputElement>, HasRef<HTMLInputElement> {
4
4
  }
5
5
  /**
6
6
  * @deprecated v5.4.0
@@ -8,5 +8,5 @@ export interface VisuallyHiddenInputProps extends React.InputHTMLAttributes<HTML
8
8
  * Компонент устарел и будет удален в v6. Используйте
9
9
  * `<VisuallyHidden Component="input" />`
10
10
  */
11
- export declare const VisuallyHiddenInput: ({ getRef, className, ...restProps }: VisuallyHiddenInputProps) => React.JSX.Element;
11
+ export declare const VisuallyHiddenInput: ({ getRef, className, getRootRef, ...restProps }: VisuallyHiddenInputProps) => React.JSX.Element;
12
12
  //# sourceMappingURL=VisuallyHiddenInput.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VisuallyHiddenInput.d.ts","sourceRoot":"","sources":["../../../src/components/VisuallyHiddenInput/VisuallyHiddenInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC,MAAM,WAAW,wBACf,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EACjD,MAAM,CAAC,gBAAgB,CAAC;CAAG;AAC/B;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,wCAI7B,wBAAwB,sBAc1B,CAAC"}
1
+ {"version":3,"file":"VisuallyHiddenInput.d.ts","sourceRoot":"","sources":["../../../src/components/VisuallyHiddenInput/VisuallyHiddenInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIjD,MAAM,WAAW,wBACf,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EACjD,UAAU,CAAC,gBAAgB,CAAC,EAC5B,MAAM,CAAC,gBAAgB,CAAC;CAAG;AAC/B;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,oDAK7B,wBAAwB,sBAe1B,CAAC"}
@@ -3,6 +3,7 @@ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
3
3
  import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
4
4
  import * as React from "react";
5
5
  import { classNames } from "@vkontakte/vkjs";
6
+ import { useExternRef } from "../../hooks/useExternRef";
6
7
  import { warnOnce } from "../../lib/warnOnce";
7
8
  var warn = warnOnce("VisuallyHiddenInput");
8
9
  /**
@@ -11,16 +12,18 @@ var warn = warnOnce("VisuallyHiddenInput");
11
12
  * Компонент устарел и будет удален в v6. Используйте
12
13
  * `<VisuallyHidden Component="input" />`
13
14
  */ export var VisuallyHiddenInput = function(_param) {
14
- var getRef = _param.getRef, className = _param.className, restProps = _object_without_properties(_param, [
15
+ var getRef = _param.getRef, className = _param.className, getRootRef = _param.getRootRef, restProps = _object_without_properties(_param, [
15
16
  "getRef",
16
- "className"
17
+ "className",
18
+ "getRootRef"
17
19
  ]);
20
+ var visuallyHiddenInputRef = useExternRef(getRef, getRootRef);
18
21
  if (process.env.NODE_ENV === "development") {
19
22
  warn("Компонент устарел и будет удален в v6. Используйте https://vkcom.github.io/VKUI/#/VisuallyHidden");
20
23
  }
21
24
  return /*#__PURE__*/ React.createElement("input", _object_spread_props(_object_spread({}, restProps), {
22
25
  className: classNames("vkuiVisuallyHiddenInput", className),
23
- ref: getRef
26
+ ref: visuallyHiddenInputRef
24
27
  }));
25
28
  };
26
29
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VisuallyHiddenInput/VisuallyHiddenInput.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasRef } from '../../types';\nimport styles from './VisuallyHiddenInput.module.css';\n\nconst warn = warnOnce('VisuallyHiddenInput');\nexport interface VisuallyHiddenInputProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement> {}\n/**\n * @deprecated v5.4.0\n *\n * Компонент устарел и будет удален в v6. Используйте\n * `<VisuallyHidden Component=\"input\" />`\n */\nexport const VisuallyHiddenInput = ({\n getRef,\n className,\n ...restProps\n}: VisuallyHiddenInputProps) => {\n if (process.env.NODE_ENV === 'development') {\n warn(\n 'Компонент устарел и будет удален в v6. Используйте https://vkcom.github.io/VKUI/#/VisuallyHidden',\n );\n }\n\n return (\n <input\n {...restProps}\n className={classNames(styles['VisuallyHiddenInput'], className)}\n ref={getRef}\n />\n );\n};\n"],"names":["React","classNames","warnOnce","warn","VisuallyHiddenInput","getRef","className","restProps","process","env","NODE_ENV","input","ref"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,QAAQ,QAAQ,qBAAqB;AAI9C,IAAMC,OAAOD,SAAS;AAItB;;;;;CAKC,GACD,OAAO,IAAME,sBAAsB;QACjCC,gBAAAA,QACAC,mBAAAA,WACGC;QAFHF;QACAC;;IAGA,IAAIE,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1CP,KACE;IAEJ;IAEA,qBACE,oBAACQ,iDACKJ;QACJD,WAAWL,sCAA0CK;QACrDM,KAAKP;;AAGX,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/VisuallyHiddenInput/VisuallyHiddenInput.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasRef, HasRootRef } from '../../types';\nimport styles from './VisuallyHiddenInput.module.css';\n\nconst warn = warnOnce('VisuallyHiddenInput');\nexport interface VisuallyHiddenInputProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRootRef<HTMLInputElement>,\n HasRef<HTMLInputElement> {}\n/**\n * @deprecated v5.4.0\n *\n * Компонент устарел и будет удален в v6. Используйте\n * `<VisuallyHidden Component=\"input\" />`\n */\nexport const VisuallyHiddenInput = ({\n getRef,\n className,\n getRootRef,\n ...restProps\n}: VisuallyHiddenInputProps) => {\n const visuallyHiddenInputRef = useExternRef(getRef, getRootRef);\n if (process.env.NODE_ENV === 'development') {\n warn(\n 'Компонент устарел и будет удален в v6. Используйте https://vkcom.github.io/VKUI/#/VisuallyHidden',\n );\n }\n\n return (\n <input\n {...restProps}\n className={classNames(styles['VisuallyHiddenInput'], className)}\n ref={visuallyHiddenInputRef}\n />\n );\n};\n"],"names":["React","classNames","useExternRef","warnOnce","warn","VisuallyHiddenInput","getRef","className","getRootRef","restProps","visuallyHiddenInputRef","process","env","NODE_ENV","input","ref"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,QAAQ,QAAQ,qBAAqB;AAI9C,IAAMC,OAAOD,SAAS;AAKtB;;;;;CAKC,GACD,OAAO,IAAME,sBAAsB;QACjCC,gBAAAA,QACAC,mBAAAA,WACAC,oBAAAA,YACGC;QAHHH;QACAC;QACAC;;IAGA,IAAME,yBAAyBR,aAAaI,QAAQE;IACpD,IAAIG,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1CT,KACE;IAEJ;IAEA,qBACE,oBAACU,iDACKL;QACJF,WAAWN,sCAA0CM;QACrDQ,KAAKL;;AAGX,EAAE"}
@@ -18,12 +18,12 @@
18
18
  .vkuiImageBaseBadge{border-radius:50%;bottom:0;padding:2px;position:absolute;right:0;transform:translate(2px,2px);z-index:2;z-index:var(--vkui_internal--z_index_image_base_badge)}.vkuiImageBaseBadge--background-stroke{background-color:#fff;background-color:var(--vkui_internal--background,var(--vkui--color_background_content))}.vkuiImageBaseBadge--background-shadow:before{border-radius:inherit;bottom:2px;box-shadow:0 0 2px rgba(0,0,0,.03),0 2px 2px rgba(0,0,0,.06);box-shadow:var(--vkui--elevation1);content:"";left:2px;margin:auto;position:absolute;right:2px;top:2px}
19
19
  .vkuiImageBaseOverlay{align-items:center;border:0;border-radius:inherit;box-shadow:inherit;box-sizing:border-box;display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s ease-in-out;width:100%;z-index:0;z-index:var(--vkui_internal--z_index_image_base_overlay)}.vkuiImageBaseOverlay--visible{opacity:1}.vkuiImageBaseOverlay--focus-visible{box-shadow:inset 0 0 0 2px #2688eb;box-shadow:inset 0 0 0 2px var(--vkui--color_stroke_accent);opacity:1}.vkuiImageBaseOverlay--theme-light{background-color:hsla(0,0%,100%,.85);background-color:var(--vkui--color_avatar_overlay_inverse_alpha);color:#2688eb;color:var(--vkui--color_icon_accent)}.vkuiImageBaseOverlay--theme-dark{background-color:rgba(0,0,0,.6);background-color:var(--vkui--color_avatar_overlay);color:#fff;color:var(--vkui--color_icon_contrast)}
20
20
  .vkuiSpinner{align-items:center;color:#818c99;color:var(--vkui--color_icon_medium);display:flex;height:100%;justify-content:center;width:100%}.vkuiInternalPanelHeader .vkuiSpinner{color:currentColor}
21
- .vkuiButton{border:0;border-radius:8px;border-radius:var(--vkui--size_border_radius--regular);box-sizing:border-box;display:inline-block;margin:0;max-width:100%;min-height:28px;min-height:var(--vkui--size_button_small_height--compact);min-width:80px;min-width:var(--vkui--size_button_minimum_width--regular);padding:0;position:relative;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vkuiButton--rounded{border-radius:48px;border-radius:var(--vkui--size_border_radius_rounded--regular)}.vkuiButton--loading{cursor:progress}.vkuiButton--singleIcon{min-width:auto;width:28px;width:var(--vkui--size_button_small_height--compact)}.vkuiButton--sizeY-regular.vkuiButton--singleIcon{width:30px;width:var(--vkui--size_button_small_height--regular)}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiButton--sizeY-none.vkuiButton--singleIcon{width:30px;width:var(--vkui--size_button_small_height--regular)}}.vkuiButton--stretched{display:block;flex-basis:0;flex-grow:1;width:100%}.vkuiButton__in{align-items:center;box-sizing:border-box;display:flex;justify-content:center;min-height:inherit;text-align:center;width:100%}.vkuiButton--align-left .vkuiButton__in{justify-content:flex-start;text-align:left}.vkuiButton--align-right .vkuiButton__in{justify-content:flex-end;text-align:right}.vkuiButton[disabled]{opacity:.4;opacity:var(--vkui--opacity_disable)}.vkuiButton--mode-outline[disabled]:not(.vkuiButton--appearance-overlay),.vkuiButton--mode-primary[disabled]:not(.vkuiButton--appearance-overlay):not(.vkuiButton--appearance-negative):not(.vkuiButton--appearance-positive),.vkuiButton--mode-secondary[disabled]:not(.vkuiButton--appearance-overlay),.vkuiButton--mode-tertiary[disabled]:not(.vkuiButton--appearance-overlay){opacity:.64}.vkuiButton__content{font-weight:500;font-weight:var(--vkui--font_weight_accent2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vkuiButton--size-s .vkuiButton__content:first-child{padding-left:16px;padding-left:var(--vkui--size_button_base_small_padding_horizontal--regular)}.vkuiButton--size-s .vkuiButton__after,.vkuiButton--size-s .vkuiButton__content:last-child{padding-right:16px;padding-right:var(--vkui--size_button_base_small_padding_horizontal--regular)}.vkuiButton--size-m .vkuiButton__content:first-child{padding-left:16px;padding-left:var(--vkui--size_button_base_medium_padding_horizontal--regular)}.vkuiButton--size-m .vkuiButton__after,.vkuiButton--size-m .vkuiButton__content:last-child{padding-right:16px;padding-right:var(--vkui--size_button_base_medium_padding_horizontal--regular)}.vkuiButton--size-l .vkuiButton__content:first-child{padding-left:20px;padding-left:var(--vkui--size_button_base_large_padding_horizontal--regular)}.vkuiButton--size-l .vkuiButton__after,.vkuiButton--size-l .vkuiButton__content:last-child{padding-right:20px;padding-right:var(--vkui--size_button_base_large_padding_horizontal--regular)}.vkuiButton--size-s .vkuiButton__before{padding-left:12px;padding-left:var(--vkui--size_button_base_small_padding_horizontal_icon--regular)}.vkuiButton--size-m .vkuiButton__before{padding-left:12px;padding-left:var(--vkui--size_button_base_medium_padding_horizontal_icon--regular)}.vkuiButton--size-l .vkuiButton__before{padding-left:16px;padding-left:var(--vkui--size_button_base_large_padding_horizontal_icon--regular)}.vkuiButton--mode-tertiary.vkuiButton--size-s .vkuiButton__content:first-child{padding-left:12px;padding-left:var(--vkui--size_button_tertiary_small_padding_horizontal--regular)}.vkuiButton--mode-tertiary.vkuiButton--size-s .vkuiButton__after,.vkuiButton--mode-tertiary.vkuiButton--size-s .vkuiButton__content:last-child{padding-right:12px;padding-right:var(--vkui--size_button_tertiary_small_padding_horizontal--regular)}.vkuiButton--mode-tertiary.vkuiButton--size-m .vkuiButton__content:first-child{padding-left:12px;padding-left:var(--vkui--size_button_tertiary_medium_padding_horizontal--regular)}.vkuiButton--mode-tertiary.vkuiButton--size-m .vkuiButton__after,.vkuiButton--mode-tertiary.vkuiButton--size-m .vkuiButton__content:last-child{padding-right:12px;padding-right:var(--vkui--size_button_tertiary_medium_padding_horizontal--regular)}.vkuiButton--mode-tertiary.vkuiButton--size-l .vkuiButton__content:first-child{padding-left:16px;padding-left:var(--vkui--size_button_tertiary_large_padding_horizontal--regular)}.vkuiButton--mode-tertiary.vkuiButton--size-l .vkuiButton__after,.vkuiButton--mode-tertiary.vkuiButton--size-l .vkuiButton__content:last-child{padding-right:16px;padding-right:var(--vkui--size_button_tertiary_large_padding_horizontal--regular)}.vkuiButton--mode-tertiary.vkuiButton--size-s .vkuiButton__before{padding-left:8px;padding-left:var(--vkui--size_button_tertiary_small_padding_horizontal_icon--regular)}.vkuiButton--mode-tertiary.vkuiButton--size-m .vkuiButton__before{padding-left:8px;padding-left:var(--vkui--size_button_tertiary_medium_padding_horizontal_icon--regular)}.vkuiButton--mode-tertiary.vkuiButton--size-l .vkuiButton__before{padding-left:12px;padding-left:var(--vkui--size_button_tertiary_large_padding_horizontal_icon--regular)}.vkuiButton--mode-tertiary.vkuiButton--singleIcon .vkuiButton__after,.vkuiButton--mode-tertiary.vkuiButton--singleIcon .vkuiButton__before,.vkuiButton--singleIcon .vkuiButton__after,.vkuiButton--singleIcon .vkuiButton__before{margin-left:auto;margin-right:auto;padding-left:0;padding-right:0}.vkuiButton--mode-link{background:none;min-width:auto}.vkuiButton--mode-link .vkuiButton__after,.vkuiButton--mode-link .vkuiButton__before,.vkuiButton--mode-link .vkuiButton__content:first-child,.vkuiButton--mode-link .vkuiButton__content:last-child{padding-left:0;padding-right:0}.vkuiButton__spinner{bottom:0;color:currentColor;left:0;position:absolute;right:0;top:0}.vkuiButton__spinner+.vkuiButton__in{visibility:hidden}.vkuiButton--mode-primary.vkuiButton--appearance-accent{background-color:#2688eb;background-color:var(--vkui--color_background_accent_themed)}.vkuiButton--mode-primary.vkuiButton--appearance-accent.vkuiButton--hover{background-color:#2483e4;background-color:var(--vkui--color_background_accent_themed--hover)}.vkuiButton--mode-primary.vkuiButton--appearance-accent.vkuiButton--active{background-color:#237edd;background-color:var(--vkui--color_background_accent_themed--active)}.vkuiButton--mode-primary.vkuiButton--appearance-positive{background-color:#4bb34b;background-color:var(--vkui--color_background_positive)}.vkuiButton--mode-primary.vkuiButton--appearance-positive.vkuiButton--hover{background-color:#48ac4a;background-color:var(--vkui--color_background_positive--hover)}.vkuiButton--mode-primary.vkuiButton--appearance-positive.vkuiButton--active{background-color:#45a64a;background-color:var(--vkui--color_background_positive--active)}.vkuiButton--mode-primary.vkuiButton--appearance-negative{background-color:#e64646;background-color:var(--vkui--color_background_negative)}.vkuiButton--mode-primary.vkuiButton--appearance-negative.vkuiButton--hover{background-color:#dd4446;background-color:var(--vkui--color_background_negative--hover)}.vkuiButton--mode-primary.vkuiButton--appearance-negative.vkuiButton--active{background-color:#d44245;background-color:var(--vkui--color_background_negative--active)}.vkuiButton--mode-primary.vkuiButton--appearance-neutral{background-color:#f5f5f5;background-color:var(--vkui--color_background_secondary)}.vkuiButton--mode-primary.vkuiButton--appearance-neutral.vkuiButton--hover{background-color:#ebecee;background-color:var(--vkui--color_background_secondary--hover)}.vkuiButton--mode-primary.vkuiButton--appearance-neutral.vkuiButton--active{background-color:#e1e3e6;background-color:var(--vkui--color_background_secondary--active)}.vkuiButton--mode-primary.vkuiButton--appearance-accent-invariable{background-color:#2688eb;background-color:var(--vkui--color_background_accent)}.vkuiButton--mode-primary.vkuiButton--appearance-accent-invariable.vkuiButton--hover{background-color:#2483e4;background-color:var(--vkui--color_background_accent--hover)}.vkuiButton--mode-primary.vkuiButton--appearance-accent-invariable.vkuiButton--active{background-color:#237edd;background-color:var(--vkui--color_background_accent--active)}.vkuiButton--mode-secondary{background-color:rgba(0,0,0,.04);background-color:var(--vkui--color_background_secondary_alpha)}.vkuiButton--mode-secondary.vkuiButton--hover{background-color:rgba(0,0,0,.08);background-color:var(--vkui--color_background_secondary_alpha--hover)}.vkuiButton--mode-secondary.vkuiButton--active{background-color:rgba(0,0,0,.12);background-color:var(--vkui--color_background_secondary_alpha--active)}.vkuiButton--mode-outline,.vkuiButton--mode-tertiary{background-color:initial;background-color:var(--vkui--color_transparent)}.vkuiButton--mode-outline.vkuiButton--hover,.vkuiButton--mode-tertiary.vkuiButton--hover{background-color:rgba(0,16,61,.04);background-color:var(--vkui--color_transparent--hover)}.vkuiButton--mode-outline.vkuiButton--active,.vkuiButton--mode-tertiary.vkuiButton--active{background-color:rgba(0,16,61,.08);background-color:var(--vkui--color_transparent--active)}.vkuiButton.vkuiButton--appearance-accent{color:#2688eb;color:var(--vkui--color_text_accent_themed)}.vkuiButton.vkuiButton--appearance-positive{color:#4bb34b;color:var(--vkui--color_text_positive)}.vkuiButton.vkuiButton--appearance-negative{color:#e64646;color:var(--vkui--color_text_negative)}.vkuiButton.vkuiButton--appearance-neutral{color:#000;color:var(--vkui--color_text_primary)}.vkuiButton.vkuiButton--appearance-accent-invariable{color:#2688eb;color:var(--vkui--color_text_accent)}.vkuiButton--mode-primary.vkuiButton--appearance-accent{color:#fff;color:var(--vkui--color_text_contrast_themed)}.vkuiButton--mode-primary.vkuiButton--appearance-accent-invariable,.vkuiButton--mode-primary.vkuiButton--appearance-negative,.vkuiButton--mode-primary.vkuiButton--appearance-positive{color:#fff;color:var(--vkui--color_text_contrast)}.vkuiButton--mode-link.vkuiButton--hover{opacity:.8}.vkuiButton--mode-link.vkuiButton--active{opacity:.7}.vkuiButton--mode-outline.vkuiButton--appearance-accent,.vkuiButton--mode-outline.vkuiButton--appearance-accent.vkuiButton--active,.vkuiButton--mode-outline.vkuiButton--appearance-accent.vkuiButton--hover{box-shadow:inset 0 0 0 1px #2688eb;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_accent_themed)}.vkuiButton--mode-outline.vkuiButton--appearance-positive{box-shadow:inset 0 0 0 1px #4bb34b;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_positive)}.vkuiButton--mode-outline.vkuiButton--appearance-positive.vkuiButton--hover{box-shadow:inset 0 0 0 1px #48ac4a;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_positive--hover)}.vkuiButton--mode-outline.vkuiButton--appearance-positive.vkuiButton--active{box-shadow:inset 0 0 0 1px #45a64a;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_positive--active)}.vkuiButton--mode-outline.vkuiButton--appearance-negative{box-shadow:inset 0 0 0 1px #e64646;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_negative)}.vkuiButton--mode-outline.vkuiButton--appearance-negative.vkuiButton--hover{box-shadow:inset 0 0 0 1px #dd4446;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_negative--hover)}.vkuiButton--mode-outline.vkuiButton--appearance-negative.vkuiButton--active{box-shadow:inset 0 0 0 1px #d44245;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_negative--active)}.vkuiButton--mode-outline.vkuiButton--appearance-neutral{box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);box-shadow:inset 0 0 0 1px var(--vkui--color_field_border_alpha)}.vkuiButton--mode-outline.vkuiButton--appearance-neutral.vkuiButton--hover{background-color:#ebecee;background-color:var(--vkui--color_background_secondary--hover);box-shadow:unset}.vkuiButton--mode-outline.vkuiButton--appearance-neutral.vkuiButton--active{background-color:#e1e3e6;background-color:var(--vkui--color_background_secondary--active);box-shadow:unset}.vkuiButton--mode-outline.vkuiButton--appearance-accent-invariable{box-shadow:inset 0 0 0 1px #2688eb;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_accent)}.vkuiButton--mode-primary.vkuiButton--appearance-overlay{background-color:#fff;background-color:var(--vkui--color_background_contrast)}.vkuiButton--mode-primary.vkuiButton--appearance-overlay.vkuiButton--hover{background-color:#f5f5f7;background-color:var(--vkui--color_background_contrast--hover)}.vkuiButton--mode-primary.vkuiButton--appearance-overlay.vkuiButton--active{background-color:#ebecef;background-color:var(--vkui--color_background_contrast--active)}.vkuiButton--mode-secondary.vkuiButton--appearance-overlay{background-color:hsla(0,0%,100%,.2);background-color:var(--vkui--color_background_contrast_secondary_alpha)}.vkuiButton--mode-outline.vkuiButton--appearance-overlay.vkuiButton--hover,.vkuiButton--mode-secondary.vkuiButton--appearance-overlay.vkuiButton--hover,.vkuiButton--mode-tertiary.vkuiButton--appearance-overlay.vkuiButton--hover{background-color:hsla(0,0%,100%,.24);background-color:var(--vkui--color_background_contrast_secondary_alpha--hover)}.vkuiButton--mode-outline.vkuiButton--appearance-overlay.vkuiButton--active,.vkuiButton--mode-secondary.vkuiButton--appearance-overlay.vkuiButton--active,.vkuiButton--mode-tertiary.vkuiButton--appearance-overlay.vkuiButton--active{background-color:hsla(0,0%,100%,.28);background-color:var(--vkui--color_background_contrast_secondary_alpha--active)}.vkuiButton--mode-primary.vkuiButton--appearance-overlay{color:#000;color:var(--vkui--color_text_primary_invariably)}.vkuiButton--mode-primary.vkuiButton--appearance-overlay.vkuiButton--hover{color:#000102;color:var(--vkui--color_text_primary_invariably--hover)}.vkuiButton--mode-primary.vkuiButton--appearance-overlay.vkuiButton--active{color:#000105;color:var(--vkui--color_text_primary_invariably--active)}.vkuiButton--mode-link.vkuiButton--appearance-overlay,.vkuiButton--mode-outline.vkuiButton--appearance-overlay,.vkuiButton--mode-secondary.vkuiButton--appearance-overlay,.vkuiButton--mode-tertiary.vkuiButton--appearance-overlay{color:#fff;color:var(--vkui--color_text_contrast)}.vkuiButton--mode-outline.vkuiButton--appearance-overlay{box-shadow:inset 0 0 0 1px #fff;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_contrast)}.vkuiButton--mode-outline.vkuiButton--appearance-overlay.vkuiButton--hover{box-shadow:inset 0 0 0 1px #f5f5f7;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_contrast--hover)}.vkuiButton--mode-outline.vkuiButton--appearance-overlay.vkuiButton--active{box-shadow:inset 0 0 0 1px #ebecef;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_contrast--active)}.vkuiButton__after:not(:first-child),.vkuiButton__before:not(:last-child)+.vkuiButton__content{margin-left:6px}.vkuiButton--size-l .vkuiButton__after:not(:first-child),.vkuiButton--size-l .vkuiButton__before:not(:last-child)+.vkuiButton__content{margin-left:8px}.vkuiButton--size-s .vkuiButton__content{font-size:13px;font-size:var(--vkui--font_subhead--font_size--compact);line-height:16px;line-height:var(--vkui--font_subhead--line_height--compact)}.vkuiButton--size-s .vkuiButton__content,.vkuiButton--sizeY-regular.vkuiButton--size-s .vkuiButton__content{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_subhead--font_family--regular)}.vkuiButton--sizeY-regular.vkuiButton--size-s .vkuiButton__content{font-size:14px;font-size:var(--vkui--font_subhead--font_size--regular);line-height:18px;line-height:var(--vkui--font_subhead--line_height--regular)}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiButton--sizeY-none.vkuiButton--size-s .vkuiButton__content{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_subhead--font_family--regular);font-size:14px;font-size:var(--vkui--font_subhead--font_size--regular);line-height:18px;line-height:var(--vkui--font_subhead--line_height--regular)}}.vkuiButton--size-m .vkuiButton__content{font-size:14px;font-size:var(--vkui--font_headline2--font_size--compact);line-height:20px;line-height:var(--vkui--font_headline2--line_height--compact)}.vkuiButton--size-m .vkuiButton__content,.vkuiButton--sizeY-regular.vkuiButton--size-m .vkuiButton__content{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_headline2--font_family--regular)}.vkuiButton--sizeY-regular.vkuiButton--size-m .vkuiButton__content{font-size:15px;font-size:var(--vkui--font_headline2--font_size--regular);line-height:20px;line-height:var(--vkui--font_headline2--line_height--regular)}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiButton--sizeY-none.vkuiButton--size-m .vkuiButton__content{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_headline2--font_family--regular);font-size:15px;font-size:var(--vkui--font_headline2--font_size--regular);line-height:20px;line-height:var(--vkui--font_headline2--line_height--regular)}}.vkuiButton--size-l .vkuiButton__content{font-size:15px;font-size:var(--vkui--font_headline1--font_size--compact);line-height:20px;line-height:var(--vkui--font_headline1--line_height--compact)}.vkuiButton--size-l .vkuiButton__content,.vkuiButton--sizeY-regular.vkuiButton--size-l .vkuiButton__content{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_headline1--font_family--regular)}.vkuiButton--sizeY-regular.vkuiButton--size-l .vkuiButton__content{font-size:16px;font-size:var(--vkui--font_headline1--font_size--regular);line-height:20px;line-height:var(--vkui--font_headline1--line_height--regular)}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiButton--sizeY-none.vkuiButton--size-l .vkuiButton__content{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_headline1--font_family--regular);font-size:16px;font-size:var(--vkui--font_headline1--font_size--regular);line-height:20px;line-height:var(--vkui--font_headline1--line_height--regular)}}.vkuiButton--sizeY-regular.vkuiButton--size-l.vkuiButton--ios .vkuiButton__content{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_title3--font_family--regular);font-size:17px;font-size:var(--vkui--font_title3--font_size--regular);line-height:22px;line-height:var(--vkui--font_title3--line_height--regular)}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiButton--sizeY-none.vkuiButton--size-l.vkuiButton--ios .vkuiButton__content{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_title3--font_family--regular);font-size:17px;font-size:var(--vkui--font_title3--font_size--regular);line-height:22px;line-height:var(--vkui--font_title3--line_height--regular)}}.vkuiButton--size-m{min-height:32px;min-height:var(--vkui--size_button_medium_height--compact)}.vkuiButton--sizeY-regular.vkuiButton--size-m{min-height:36px;min-height:var(--vkui--size_button_medium_height--regular)}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiButton--sizeY-none.vkuiButton--size-m{min-height:36px;min-height:var(--vkui--size_button_medium_height--regular)}}.vkuiButton--size-m.vkuiButton--singleIcon{width:32px;width:var(--vkui--size_button_medium_height--compact)}.vkuiButton--sizeY-regular.vkuiButton--size-m.vkuiButton--singleIcon{width:36px;width:var(--vkui--size_button_medium_height--regular)}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiButton--sizeY-none.vkuiButton--size-m.vkuiButton--singleIcon{width:36px;width:var(--vkui--size_button_medium_height--regular)}}.vkuiButton--size-l{min-height:36px;min-height:var(--vkui--size_button_large_height--compact)}.vkuiButton--sizeY-regular.vkuiButton--size-l{min-height:44px;min-height:var(--vkui--size_button_large_height--regular)}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiButton--sizeY-none.vkuiButton--size-l{min-height:44px;min-height:var(--vkui--size_button_large_height--regular)}}.vkuiButton--size-l.vkuiButton--singleIcon{width:36px;width:var(--vkui--size_button_large_height--compact)}.vkuiButton--sizeY-regular.vkuiButton--size-l.vkuiButton--singleIcon{width:44px;width:var(--vkui--size_button_large_height--regular)}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiButton--sizeY-none.vkuiButton--size-l.vkuiButton--singleIcon{width:44px;width:var(--vkui--size_button_large_height--regular)}}.vkuiButton--sizeY-regular{min-height:30px;min-height:var(--vkui--size_button_small_height--regular)}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiButton--sizeY-none{min-height:30px;min-height:var(--vkui--size_button_small_height--regular)}}.vkuiButton--mode-primary.vkuiButton--appearance-accent{--vkui_internal--counter_inherit_background:var(--vkui--color_background_content);--vkui_internal--counter_inherit_color:var(--vkui--color_text_accent_themed)}.vkuiButton--mode-outline.vkuiButton--appearance-accent,.vkuiButton--mode-secondary.vkuiButton--appearance-accent,.vkuiButton--mode-tertiary.vkuiButton--appearance-accent{--vkui_internal--counter_inherit_background:var(--vkui--color_background_accent_themed);--vkui_internal--counter_inherit_color:var(--vkui--color_text_contrast_themed)}.vkuiButton--mode-primary.vkuiButton--appearance-positive{--vkui_internal--counter_inherit_background:var(--vkui--color_background_contrast);--vkui_internal--counter_inherit_color:var(--vkui--color_text_positive)}.vkuiButton--mode-outline.vkuiButton--appearance-positive,.vkuiButton--mode-secondary.vkuiButton--appearance-positive,.vkuiButton--mode-tertiary.vkuiButton--appearance-positive{--vkui_internal--counter_inherit_background:var(--vkui--color_background_positive);--vkui_internal--counter_inherit_color:var(--vkui--color_text_contrast)}.vkuiButton--mode-primary.vkuiButton--appearance-negative{--vkui_internal--counter_inherit_background:var(--vkui--color_background_contrast);--vkui_internal--counter_inherit_color:var(--vkui--color_text_negative)}.vkuiButton--mode-outline.vkuiButton--appearance-negative,.vkuiButton--mode-secondary.vkuiButton--appearance-negative,.vkuiButton--mode-tertiary.vkuiButton--appearance-negative{--vkui_internal--counter_inherit_background:var(--vkui--color_background_negative);--vkui_internal--counter_inherit_color:var(--vkui--color_text_contrast)}.vkuiButton--mode-primary.vkuiButton--appearance-neutral{--vkui_internal--counter_inherit_background:var(--vkui--color_background_contrast);--vkui_internal--counter_inherit_color:var(--vkui--color_text_primary_invariably)}.vkuiButton--mode-outline.vkuiButton--appearance-neutral,.vkuiButton--mode-secondary.vkuiButton--appearance-neutral,.vkuiButton--mode-tertiary.vkuiButton--appearance-neutral{--vkui_internal--counter_inherit_background:var(--vkui--color_background_accent);--vkui_internal--counter_inherit_color:var(--vkui--color_text_contrast)}.vkuiButton--mode-primary.vkuiButton--appearance-overlay{--vkui_internal--counter_inherit_background:var(--vkui--color_icon_primary_invariably);--vkui_internal--counter_inherit_color:var(--vkui--color_text_contrast)}.vkuiButton--mode-outline.vkuiButton--appearance-overlay,.vkuiButton--mode-secondary.vkuiButton--appearance-overlay,.vkuiButton--mode-tertiary.vkuiButton--appearance-overlay{--vkui_internal--counter_inherit_background:var(--vkui--color_background_contrast);--vkui_internal--counter_inherit_color:var(--vkui--color_text_primary_invariably)}
21
+ .vkuiButton{border:0;border-radius:8px;border-radius:var(--vkui--size_border_radius--regular);box-sizing:border-box;display:inline-block;margin:0;max-width:100%;min-height:28px;min-height:var(--vkui--size_button_small_height--compact);min-width:80px;min-width:var(--vkui--size_button_minimum_width--regular);padding:0;position:relative;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vkuiButton--rounded{border-radius:48px;border-radius:var(--vkui--size_border_radius_rounded--regular)}.vkuiButton--loading{cursor:progress}.vkuiButton--singleIcon{min-width:auto;width:28px;width:var(--vkui--size_button_small_height--compact)}.vkuiButton--sizeY-regular.vkuiButton--singleIcon{width:30px;width:var(--vkui--size_button_small_height--regular)}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiButton--sizeY-none.vkuiButton--singleIcon{width:30px;width:var(--vkui--size_button_small_height--regular)}}.vkuiButton--stretched{display:block;flex-basis:0;flex-grow:1;width:100%}.vkuiButton__in{align-items:center;box-sizing:border-box;display:flex;justify-content:center;min-height:inherit;text-align:center;width:100%}.vkuiButton--align-left .vkuiButton__in{justify-content:flex-start;text-align:left}.vkuiButton--align-right .vkuiButton__in{justify-content:flex-end;text-align:right}.vkuiButton[disabled]{opacity:.4;opacity:var(--vkui--opacity_disable)}.vkuiButton--mode-outline[disabled]:not(.vkuiButton--appearance-overlay),.vkuiButton--mode-primary[disabled]:not(.vkuiButton--appearance-overlay):not(.vkuiButton--appearance-negative):not(.vkuiButton--appearance-positive),.vkuiButton--mode-secondary[disabled]:not(.vkuiButton--appearance-overlay),.vkuiButton--mode-tertiary[disabled]:not(.vkuiButton--appearance-overlay){opacity:.64}.vkuiButton__content{font-weight:500;font-weight:var(--vkui--font_weight_accent2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vkuiButton--size-s .vkuiButton__content:first-child{padding-left:16px;padding-left:var(--vkui--size_button_base_small_padding_horizontal--regular)}.vkuiButton--size-s .vkuiButton__after,.vkuiButton--size-s .vkuiButton__content:last-child{padding-right:16px;padding-right:var(--vkui--size_button_base_small_padding_horizontal--regular)}.vkuiButton--size-m .vkuiButton__content:first-child{padding-left:16px;padding-left:var(--vkui--size_button_base_medium_padding_horizontal--regular)}.vkuiButton--size-m .vkuiButton__after,.vkuiButton--size-m .vkuiButton__content:last-child{padding-right:16px;padding-right:var(--vkui--size_button_base_medium_padding_horizontal--regular)}.vkuiButton--size-l .vkuiButton__content:first-child{padding-left:20px;padding-left:var(--vkui--size_button_base_large_padding_horizontal--regular)}.vkuiButton--size-l .vkuiButton__after,.vkuiButton--size-l .vkuiButton__content:last-child{padding-right:20px;padding-right:var(--vkui--size_button_base_large_padding_horizontal--regular)}.vkuiButton--size-s .vkuiButton__before{padding-left:12px;padding-left:var(--vkui--size_button_base_small_padding_horizontal_icon--regular)}.vkuiButton--size-m .vkuiButton__before{padding-left:12px;padding-left:var(--vkui--size_button_base_medium_padding_horizontal_icon--regular)}.vkuiButton--size-l .vkuiButton__before{padding-left:16px;padding-left:var(--vkui--size_button_base_large_padding_horizontal_icon--regular)}.vkuiButton--mode-tertiary.vkuiButton--size-s .vkuiButton__content:first-child{padding-left:12px;padding-left:var(--vkui--size_button_tertiary_small_padding_horizontal--regular)}.vkuiButton--mode-tertiary.vkuiButton--size-s .vkuiButton__after,.vkuiButton--mode-tertiary.vkuiButton--size-s .vkuiButton__content:last-child{padding-right:12px;padding-right:var(--vkui--size_button_tertiary_small_padding_horizontal--regular)}.vkuiButton--mode-tertiary.vkuiButton--size-m .vkuiButton__content:first-child{padding-left:12px;padding-left:var(--vkui--size_button_tertiary_medium_padding_horizontal--regular)}.vkuiButton--mode-tertiary.vkuiButton--size-m .vkuiButton__after,.vkuiButton--mode-tertiary.vkuiButton--size-m .vkuiButton__content:last-child{padding-right:12px;padding-right:var(--vkui--size_button_tertiary_medium_padding_horizontal--regular)}.vkuiButton--mode-tertiary.vkuiButton--size-l .vkuiButton__content:first-child{padding-left:16px;padding-left:var(--vkui--size_button_tertiary_large_padding_horizontal--regular)}.vkuiButton--mode-tertiary.vkuiButton--size-l .vkuiButton__after,.vkuiButton--mode-tertiary.vkuiButton--size-l .vkuiButton__content:last-child{padding-right:16px;padding-right:var(--vkui--size_button_tertiary_large_padding_horizontal--regular)}.vkuiButton--mode-tertiary.vkuiButton--size-s .vkuiButton__before{padding-left:8px;padding-left:var(--vkui--size_button_tertiary_small_padding_horizontal_icon--regular)}.vkuiButton--mode-tertiary.vkuiButton--size-m .vkuiButton__before{padding-left:8px;padding-left:var(--vkui--size_button_tertiary_medium_padding_horizontal_icon--regular)}.vkuiButton--mode-tertiary.vkuiButton--size-l .vkuiButton__before{padding-left:12px;padding-left:var(--vkui--size_button_tertiary_large_padding_horizontal_icon--regular)}.vkuiButton--mode-tertiary.vkuiButton--singleIcon .vkuiButton__after,.vkuiButton--mode-tertiary.vkuiButton--singleIcon .vkuiButton__before,.vkuiButton--singleIcon .vkuiButton__after,.vkuiButton--singleIcon .vkuiButton__before{margin-left:auto;margin-right:auto;padding-left:0;padding-right:0}.vkuiButton--mode-link{background:none;min-width:auto}.vkuiButton--mode-link .vkuiButton__after,.vkuiButton--mode-link .vkuiButton__before,.vkuiButton--mode-link .vkuiButton__content:first-child,.vkuiButton--mode-link .vkuiButton__content:last-child,.vkuiButton--stretched .vkuiButton__after:only-child,.vkuiButton--stretched .vkuiButton__before:only-child{padding-left:0;padding-right:0}.vkuiButton__spinner{bottom:0;color:currentColor;left:0;position:absolute;right:0;top:0}.vkuiButton__spinner+.vkuiButton__in{visibility:hidden}.vkuiButton--mode-primary.vkuiButton--appearance-accent{background-color:#2688eb;background-color:var(--vkui--color_background_accent_themed)}.vkuiButton--mode-primary.vkuiButton--appearance-accent.vkuiButton--hover{background-color:#2483e4;background-color:var(--vkui--color_background_accent_themed--hover)}.vkuiButton--mode-primary.vkuiButton--appearance-accent.vkuiButton--active{background-color:#237edd;background-color:var(--vkui--color_background_accent_themed--active)}.vkuiButton--mode-primary.vkuiButton--appearance-positive{background-color:#4bb34b;background-color:var(--vkui--color_background_positive)}.vkuiButton--mode-primary.vkuiButton--appearance-positive.vkuiButton--hover{background-color:#48ac4a;background-color:var(--vkui--color_background_positive--hover)}.vkuiButton--mode-primary.vkuiButton--appearance-positive.vkuiButton--active{background-color:#45a64a;background-color:var(--vkui--color_background_positive--active)}.vkuiButton--mode-primary.vkuiButton--appearance-negative{background-color:#e64646;background-color:var(--vkui--color_background_negative)}.vkuiButton--mode-primary.vkuiButton--appearance-negative.vkuiButton--hover{background-color:#dd4446;background-color:var(--vkui--color_background_negative--hover)}.vkuiButton--mode-primary.vkuiButton--appearance-negative.vkuiButton--active{background-color:#d44245;background-color:var(--vkui--color_background_negative--active)}.vkuiButton--mode-primary.vkuiButton--appearance-neutral{background-color:#f5f5f5;background-color:var(--vkui--color_background_secondary)}.vkuiButton--mode-primary.vkuiButton--appearance-neutral.vkuiButton--hover{background-color:#ebecee;background-color:var(--vkui--color_background_secondary--hover)}.vkuiButton--mode-primary.vkuiButton--appearance-neutral.vkuiButton--active{background-color:#e1e3e6;background-color:var(--vkui--color_background_secondary--active)}.vkuiButton--mode-primary.vkuiButton--appearance-accent-invariable{background-color:#2688eb;background-color:var(--vkui--color_background_accent)}.vkuiButton--mode-primary.vkuiButton--appearance-accent-invariable.vkuiButton--hover{background-color:#2483e4;background-color:var(--vkui--color_background_accent--hover)}.vkuiButton--mode-primary.vkuiButton--appearance-accent-invariable.vkuiButton--active{background-color:#237edd;background-color:var(--vkui--color_background_accent--active)}.vkuiButton--mode-secondary{background-color:rgba(0,0,0,.04);background-color:var(--vkui--color_background_secondary_alpha)}.vkuiButton--mode-secondary.vkuiButton--hover{background-color:rgba(0,0,0,.08);background-color:var(--vkui--color_background_secondary_alpha--hover)}.vkuiButton--mode-secondary.vkuiButton--active{background-color:rgba(0,0,0,.12);background-color:var(--vkui--color_background_secondary_alpha--active)}.vkuiButton--mode-outline,.vkuiButton--mode-tertiary{background-color:initial;background-color:var(--vkui--color_transparent)}.vkuiButton--mode-outline.vkuiButton--hover,.vkuiButton--mode-tertiary.vkuiButton--hover{background-color:rgba(0,16,61,.04);background-color:var(--vkui--color_transparent--hover)}.vkuiButton--mode-outline.vkuiButton--active,.vkuiButton--mode-tertiary.vkuiButton--active{background-color:rgba(0,16,61,.08);background-color:var(--vkui--color_transparent--active)}.vkuiButton.vkuiButton--appearance-accent{color:#2688eb;color:var(--vkui--color_text_accent_themed)}.vkuiButton.vkuiButton--appearance-positive{color:#4bb34b;color:var(--vkui--color_text_positive)}.vkuiButton.vkuiButton--appearance-negative{color:#e64646;color:var(--vkui--color_text_negative)}.vkuiButton.vkuiButton--appearance-neutral{color:#000;color:var(--vkui--color_text_primary)}.vkuiButton.vkuiButton--appearance-accent-invariable{color:#2688eb;color:var(--vkui--color_text_accent)}.vkuiButton--mode-primary.vkuiButton--appearance-accent{color:#fff;color:var(--vkui--color_text_contrast_themed)}.vkuiButton--mode-primary.vkuiButton--appearance-accent-invariable,.vkuiButton--mode-primary.vkuiButton--appearance-negative,.vkuiButton--mode-primary.vkuiButton--appearance-positive{color:#fff;color:var(--vkui--color_text_contrast)}.vkuiButton--mode-link.vkuiButton--hover{opacity:.8}.vkuiButton--mode-link.vkuiButton--active{opacity:.7}.vkuiButton--mode-outline.vkuiButton--appearance-accent,.vkuiButton--mode-outline.vkuiButton--appearance-accent.vkuiButton--active,.vkuiButton--mode-outline.vkuiButton--appearance-accent.vkuiButton--hover{box-shadow:inset 0 0 0 1px #2688eb;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_accent_themed)}.vkuiButton--mode-outline.vkuiButton--appearance-positive{box-shadow:inset 0 0 0 1px #4bb34b;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_positive)}.vkuiButton--mode-outline.vkuiButton--appearance-positive.vkuiButton--hover{box-shadow:inset 0 0 0 1px #48ac4a;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_positive--hover)}.vkuiButton--mode-outline.vkuiButton--appearance-positive.vkuiButton--active{box-shadow:inset 0 0 0 1px #45a64a;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_positive--active)}.vkuiButton--mode-outline.vkuiButton--appearance-negative{box-shadow:inset 0 0 0 1px #e64646;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_negative)}.vkuiButton--mode-outline.vkuiButton--appearance-negative.vkuiButton--hover{box-shadow:inset 0 0 0 1px #dd4446;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_negative--hover)}.vkuiButton--mode-outline.vkuiButton--appearance-negative.vkuiButton--active{box-shadow:inset 0 0 0 1px #d44245;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_negative--active)}.vkuiButton--mode-outline.vkuiButton--appearance-neutral{box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);box-shadow:inset 0 0 0 1px var(--vkui--color_field_border_alpha)}.vkuiButton--mode-outline.vkuiButton--appearance-neutral.vkuiButton--hover{background-color:#ebecee;background-color:var(--vkui--color_background_secondary--hover);box-shadow:unset}.vkuiButton--mode-outline.vkuiButton--appearance-neutral.vkuiButton--active{background-color:#e1e3e6;background-color:var(--vkui--color_background_secondary--active);box-shadow:unset}.vkuiButton--mode-outline.vkuiButton--appearance-accent-invariable{box-shadow:inset 0 0 0 1px #2688eb;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_accent)}.vkuiButton--mode-primary.vkuiButton--appearance-overlay{background-color:#fff;background-color:var(--vkui--color_background_contrast)}.vkuiButton--mode-primary.vkuiButton--appearance-overlay.vkuiButton--hover{background-color:#f5f5f7;background-color:var(--vkui--color_background_contrast--hover)}.vkuiButton--mode-primary.vkuiButton--appearance-overlay.vkuiButton--active{background-color:#ebecef;background-color:var(--vkui--color_background_contrast--active)}.vkuiButton--mode-secondary.vkuiButton--appearance-overlay{background-color:hsla(0,0%,100%,.2);background-color:var(--vkui--color_background_contrast_secondary_alpha)}.vkuiButton--mode-outline.vkuiButton--appearance-overlay.vkuiButton--hover,.vkuiButton--mode-secondary.vkuiButton--appearance-overlay.vkuiButton--hover,.vkuiButton--mode-tertiary.vkuiButton--appearance-overlay.vkuiButton--hover{background-color:hsla(0,0%,100%,.24);background-color:var(--vkui--color_background_contrast_secondary_alpha--hover)}.vkuiButton--mode-outline.vkuiButton--appearance-overlay.vkuiButton--active,.vkuiButton--mode-secondary.vkuiButton--appearance-overlay.vkuiButton--active,.vkuiButton--mode-tertiary.vkuiButton--appearance-overlay.vkuiButton--active{background-color:hsla(0,0%,100%,.28);background-color:var(--vkui--color_background_contrast_secondary_alpha--active)}.vkuiButton--mode-primary.vkuiButton--appearance-overlay{color:#000;color:var(--vkui--color_text_primary_invariably)}.vkuiButton--mode-primary.vkuiButton--appearance-overlay.vkuiButton--hover{color:#000102;color:var(--vkui--color_text_primary_invariably--hover)}.vkuiButton--mode-primary.vkuiButton--appearance-overlay.vkuiButton--active{color:#000105;color:var(--vkui--color_text_primary_invariably--active)}.vkuiButton--mode-link.vkuiButton--appearance-overlay,.vkuiButton--mode-outline.vkuiButton--appearance-overlay,.vkuiButton--mode-secondary.vkuiButton--appearance-overlay,.vkuiButton--mode-tertiary.vkuiButton--appearance-overlay{color:#fff;color:var(--vkui--color_text_contrast)}.vkuiButton--mode-outline.vkuiButton--appearance-overlay{box-shadow:inset 0 0 0 1px #fff;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_contrast)}.vkuiButton--mode-outline.vkuiButton--appearance-overlay.vkuiButton--hover{box-shadow:inset 0 0 0 1px #f5f5f7;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_contrast--hover)}.vkuiButton--mode-outline.vkuiButton--appearance-overlay.vkuiButton--active{box-shadow:inset 0 0 0 1px #ebecef;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_contrast--active)}.vkuiButton__after:not(:first-child),.vkuiButton__before:not(:last-child)+.vkuiButton__content{margin-left:6px}.vkuiButton--size-l .vkuiButton__after:not(:first-child),.vkuiButton--size-l .vkuiButton__before:not(:last-child)+.vkuiButton__content{margin-left:8px}.vkuiButton--size-s .vkuiButton__content{font-size:13px;font-size:var(--vkui--font_subhead--font_size--compact);line-height:16px;line-height:var(--vkui--font_subhead--line_height--compact)}.vkuiButton--size-s .vkuiButton__content,.vkuiButton--sizeY-regular.vkuiButton--size-s .vkuiButton__content{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_subhead--font_family--regular)}.vkuiButton--sizeY-regular.vkuiButton--size-s .vkuiButton__content{font-size:14px;font-size:var(--vkui--font_subhead--font_size--regular);line-height:18px;line-height:var(--vkui--font_subhead--line_height--regular)}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiButton--sizeY-none.vkuiButton--size-s .vkuiButton__content{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_subhead--font_family--regular);font-size:14px;font-size:var(--vkui--font_subhead--font_size--regular);line-height:18px;line-height:var(--vkui--font_subhead--line_height--regular)}}.vkuiButton--size-m .vkuiButton__content{font-size:14px;font-size:var(--vkui--font_headline2--font_size--compact);line-height:20px;line-height:var(--vkui--font_headline2--line_height--compact)}.vkuiButton--size-m .vkuiButton__content,.vkuiButton--sizeY-regular.vkuiButton--size-m .vkuiButton__content{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_headline2--font_family--regular)}.vkuiButton--sizeY-regular.vkuiButton--size-m .vkuiButton__content{font-size:15px;font-size:var(--vkui--font_headline2--font_size--regular);line-height:20px;line-height:var(--vkui--font_headline2--line_height--regular)}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiButton--sizeY-none.vkuiButton--size-m .vkuiButton__content{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_headline2--font_family--regular);font-size:15px;font-size:var(--vkui--font_headline2--font_size--regular);line-height:20px;line-height:var(--vkui--font_headline2--line_height--regular)}}.vkuiButton--size-l .vkuiButton__content{font-size:15px;font-size:var(--vkui--font_headline1--font_size--compact);line-height:20px;line-height:var(--vkui--font_headline1--line_height--compact)}.vkuiButton--size-l .vkuiButton__content,.vkuiButton--sizeY-regular.vkuiButton--size-l .vkuiButton__content{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_headline1--font_family--regular)}.vkuiButton--sizeY-regular.vkuiButton--size-l .vkuiButton__content{font-size:16px;font-size:var(--vkui--font_headline1--font_size--regular);line-height:20px;line-height:var(--vkui--font_headline1--line_height--regular)}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiButton--sizeY-none.vkuiButton--size-l .vkuiButton__content{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_headline1--font_family--regular);font-size:16px;font-size:var(--vkui--font_headline1--font_size--regular);line-height:20px;line-height:var(--vkui--font_headline1--line_height--regular)}}.vkuiButton--sizeY-regular.vkuiButton--size-l.vkuiButton--ios .vkuiButton__content{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_title3--font_family--regular);font-size:17px;font-size:var(--vkui--font_title3--font_size--regular);line-height:22px;line-height:var(--vkui--font_title3--line_height--regular)}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiButton--sizeY-none.vkuiButton--size-l.vkuiButton--ios .vkuiButton__content{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_title3--font_family--regular);font-size:17px;font-size:var(--vkui--font_title3--font_size--regular);line-height:22px;line-height:var(--vkui--font_title3--line_height--regular)}}.vkuiButton--size-m{min-height:32px;min-height:var(--vkui--size_button_medium_height--compact)}.vkuiButton--sizeY-regular.vkuiButton--size-m{min-height:36px;min-height:var(--vkui--size_button_medium_height--regular)}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiButton--sizeY-none.vkuiButton--size-m{min-height:36px;min-height:var(--vkui--size_button_medium_height--regular)}}.vkuiButton--size-m.vkuiButton--singleIcon{width:32px;width:var(--vkui--size_button_medium_height--compact)}.vkuiButton--sizeY-regular.vkuiButton--size-m.vkuiButton--singleIcon{width:36px;width:var(--vkui--size_button_medium_height--regular)}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiButton--sizeY-none.vkuiButton--size-m.vkuiButton--singleIcon{width:36px;width:var(--vkui--size_button_medium_height--regular)}}.vkuiButton--size-l{min-height:36px;min-height:var(--vkui--size_button_large_height--compact)}.vkuiButton--sizeY-regular.vkuiButton--size-l{min-height:44px;min-height:var(--vkui--size_button_large_height--regular)}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiButton--sizeY-none.vkuiButton--size-l{min-height:44px;min-height:var(--vkui--size_button_large_height--regular)}}.vkuiButton--size-l.vkuiButton--singleIcon{width:36px;width:var(--vkui--size_button_large_height--compact)}.vkuiButton--sizeY-regular.vkuiButton--size-l.vkuiButton--singleIcon{width:44px;width:var(--vkui--size_button_large_height--regular)}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiButton--sizeY-none.vkuiButton--size-l.vkuiButton--singleIcon{width:44px;width:var(--vkui--size_button_large_height--regular)}}.vkuiButton--sizeY-regular{min-height:30px;min-height:var(--vkui--size_button_small_height--regular)}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiButton--sizeY-none{min-height:30px;min-height:var(--vkui--size_button_small_height--regular)}}.vkuiButton--mode-primary.vkuiButton--appearance-accent{--vkui_internal--counter_inherit_background:var(--vkui--color_background_content);--vkui_internal--counter_inherit_color:var(--vkui--color_text_accent_themed)}.vkuiButton--mode-outline.vkuiButton--appearance-accent,.vkuiButton--mode-secondary.vkuiButton--appearance-accent,.vkuiButton--mode-tertiary.vkuiButton--appearance-accent{--vkui_internal--counter_inherit_background:var(--vkui--color_background_accent_themed);--vkui_internal--counter_inherit_color:var(--vkui--color_text_contrast_themed)}.vkuiButton--mode-primary.vkuiButton--appearance-positive{--vkui_internal--counter_inherit_background:var(--vkui--color_background_contrast);--vkui_internal--counter_inherit_color:var(--vkui--color_text_positive)}.vkuiButton--mode-outline.vkuiButton--appearance-positive,.vkuiButton--mode-secondary.vkuiButton--appearance-positive,.vkuiButton--mode-tertiary.vkuiButton--appearance-positive{--vkui_internal--counter_inherit_background:var(--vkui--color_background_positive);--vkui_internal--counter_inherit_color:var(--vkui--color_text_contrast)}.vkuiButton--mode-primary.vkuiButton--appearance-negative{--vkui_internal--counter_inherit_background:var(--vkui--color_background_contrast);--vkui_internal--counter_inherit_color:var(--vkui--color_text_negative)}.vkuiButton--mode-outline.vkuiButton--appearance-negative,.vkuiButton--mode-secondary.vkuiButton--appearance-negative,.vkuiButton--mode-tertiary.vkuiButton--appearance-negative{--vkui_internal--counter_inherit_background:var(--vkui--color_background_negative);--vkui_internal--counter_inherit_color:var(--vkui--color_text_contrast)}.vkuiButton--mode-primary.vkuiButton--appearance-neutral{--vkui_internal--counter_inherit_background:var(--vkui--color_background_contrast);--vkui_internal--counter_inherit_color:var(--vkui--color_text_primary_invariably)}.vkuiButton--mode-outline.vkuiButton--appearance-neutral,.vkuiButton--mode-secondary.vkuiButton--appearance-neutral,.vkuiButton--mode-tertiary.vkuiButton--appearance-neutral{--vkui_internal--counter_inherit_background:var(--vkui--color_background_accent);--vkui_internal--counter_inherit_color:var(--vkui--color_text_contrast)}.vkuiButton--mode-primary.vkuiButton--appearance-overlay{--vkui_internal--counter_inherit_background:var(--vkui--color_icon_primary_invariably);--vkui_internal--counter_inherit_color:var(--vkui--color_text_contrast)}.vkuiButton--mode-outline.vkuiButton--appearance-overlay,.vkuiButton--mode-secondary.vkuiButton--appearance-overlay,.vkuiButton--mode-tertiary.vkuiButton--appearance-overlay{--vkui_internal--counter_inherit_background:var(--vkui--color_background_contrast);--vkui_internal--counter_inherit_color:var(--vkui--color_text_primary_invariably)}
22
22
  .vkuiVisuallyHidden{clip:rect(0,0,0,0)!important;border:0!important;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px!important;margin:-1px!important;opacity:0;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}
23
23
  .vkuiRoot{height:100%;position:relative;width:100%}.vkuiRoot--transition{pointer-events:none}.vkuiRoot__view{height:100%;position:relative;width:100%}.vkuiRoot--transition .vkuiRoot__view{left:0;overflow:hidden;position:fixed;top:0}.vkuiRoot__scrollCompensation{height:100%;width:100%}.vkuiRoot__view--show-forward{animation:vkuiroot-android-animation-show-forward .3s cubic-bezier(.4,0,.2,1);animation:vkuiroot-android-animation-show-forward .3s var(--vkui--animation_easing_platform)}.vkuiRoot__view--hide-back{animation:vkuiroot-android-animation-hide-back .3s cubic-bezier(.4,0,.2,1) forwards;animation:vkuiroot-android-animation-hide-back .3s var(--vkui--animation_easing_platform) forwards}.vkuiRoot--ios .vkuiRoot__view--hide-forward:after,.vkuiRoot--ios .vkuiRoot__view--show-back:after{background-color:#000;content:"";display:block;height:100%;left:0;position:absolute;top:0;width:100%}.vkuiRoot--ios .vkuiRoot__view--show-back:after{animation:vkuiroot-ios-animation-show-back .6s cubic-bezier(.4,0,.2,1) forwards;animation:vkuiroot-ios-animation-show-back .6s var(--vkui--animation_easing_platform) forwards}.vkuiRoot--ios .vkuiRoot__view--hide-forward:after{animation:vkuiroot-ios-animation-hide-forward .6s cubic-bezier(.4,0,.2,1);animation:vkuiroot-ios-animation-hide-forward .6s var(--vkui--animation_easing_platform)}.vkuiRoot--ios .vkuiRoot__view--show-forward{animation:vkuiroot-ios-animation-show-forward .6s cubic-bezier(.4,0,.2,1);animation:vkuiroot-ios-animation-show-forward .6s var(--vkui--animation_easing_platform)}.vkuiRoot--ios .vkuiRoot__view--hide-back{animation:vkuiroot-ios-animation-hide-back .6s cubic-bezier(.4,0,.2,1) forwards;animation:vkuiroot-ios-animation-hide-back .6s var(--vkui--animation_easing_platform) forwards}@keyframes vkuiroot-ios-animation-show-back{0%{opacity:.3}to{opacity:0}}@keyframes vkuiroot-ios-animation-hide-forward{0%{opacity:0}to{opacity:.3}}@keyframes vkuiroot-ios-animation-hide-back{0%{transform:translateZ(0)}to{transform:translate3d(0,100%,0)}}@keyframes vkuiroot-ios-animation-show-forward{0%{transform:translate3d(0,100%,0)}to{transform:translateZ(0)}}@keyframes vkuiroot-android-animation-hide-back{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.05)}}@keyframes vkuiroot-android-animation-show-forward{0%{opacity:0;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}
24
24
  .vkuiView{word-wrap:break-word;height:100%;position:relative;width:100%}.vkuiView--animated,.vkuiView--swiping-back{overflow:hidden}.vkuiView--animated .vkuiView__header,.vkuiView--animated .vkuiView__panel,.vkuiView--swiping-back .vkuiView__header,.vkuiView--swiping-back .vkuiView__panel{pointer-events:none}.vkuiView__panel,.vkuiView__panels{height:100%;width:100%}.vkuiView__panel{box-sizing:border-box;isolation:isolate;position:relative}.vkuiView__panel-in{height:100%}.vkuiView--animated .vkuiView__panel,.vkuiView--swiping-back .vkuiView__panel{left:0;overflow:hidden;position:fixed;top:0}.vkuiView__panel-overlay{background-color:#000;display:none;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:5;z-index:var(--vkui_internal--z_index_panel_header_fade)}.vkuiView--ios .vkuiView__panel--swipe-back-prev.vkuiView__panel--swipe-back-success{transform:translate3d(100%,0,0);transition:transform .3s cubic-bezier(.4,0,.2,1);transition:transform .3s var(--vkui--animation_easing_platform)}.vkuiView--ios .vkuiView__panel--swipe-back-next.vkuiView__panel--swipe-back-success,.vkuiView--ios .vkuiView__panel--swipe-back-prev.vkuiView__panel--swipe-back-failed{transform:translateZ(0);transition:transform .3s cubic-bezier(.4,0,.2,1);transition:transform .3s var(--vkui--animation_easing_platform)}.vkuiView--ios .vkuiView__panel--swipe-back-next.vkuiView__panel--swipe-back-failed{transform:translate3d(-50%,0,0);transition:transform .3s cubic-bezier(.4,0,.2,1);transition:transform .3s var(--vkui--animation_easing_platform)}.vkuiView--ios .vkuiView__panel--swipe-back-next .vkuiView__panel-overlay{background-color:rgba(0,0,0,.1)}.vkuiView--ios .vkuiView__panel--swipe-back-next.vkuiView__panel--swipe-back-failed .vkuiView__panel-overlay,.vkuiView--ios .vkuiView__panel--swipe-back-next.vkuiView__panel--swipe-back-success .vkuiView__panel-overlay{transition:opacity .3s cubic-bezier(.4,0,.2,1);transition:opacity .3s var(--vkui--animation_easing_platform)}.vkuiView__panel--next~.vkuiView__panel--prev{animation:vkuianimation-view-prev-back .3s cubic-bezier(.4,0,.2,1) forwards;animation:vkuianimation-view-prev-back .3s var(--vkui--animation_easing_platform) forwards}.vkuiView__panel--prev~.vkuiView__panel--next{animation:vkuianimation-view-next-forward .3s cubic-bezier(.4,0,.2,1);animation:vkuianimation-view-next-forward .3s var(--vkui--animation_easing_platform)}.vkuiView--no-motion .vkuiView__panel{animation:none}@keyframes vkuianimation-view-prev-back{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(80px)}}@keyframes vkuianimation-view-next-forward{0%{opacity:0;transform:translateY(80px)}to{opacity:1;transform:translateY(0)}}.vkuiView--ios .vkuiView__panel--prev{animation:vkuianimation-ios-prev-forward .6s cubic-bezier(.4,0,.2,1);animation:vkuianimation-ios-prev-forward .6s var(--vkui--animation_easing_platform)}.vkuiView--ios .vkuiView__panel--next{animation:vkuianimation-ios-next-back .6s cubic-bezier(.4,0,.2,1);animation:vkuianimation-ios-next-back .6s var(--vkui--animation_easing_platform)}.vkuiView--ios .vkuiView__panel--prev~.vkuiView__panel--next{animation:vkuianimation-ios-next-forward .6s cubic-bezier(.4,0,.2,1);animation:vkuianimation-ios-next-forward .6s var(--vkui--animation_easing_platform)}.vkuiView--ios .vkuiView__panel--next~.vkuiView__panel--prev{animation:vkuianimation-ios-prev-back .6s cubic-bezier(.4,0,.2,1) forwards;animation:vkuianimation-ios-prev-back .6s var(--vkui--animation_easing_platform) forwards}.vkuiView--ios .vkuiView__panel--next .vkuiView__panel-overlay,.vkuiView--ios .vkuiView__panel--prev .vkuiView__panel-overlay{display:block}.vkuiView--ios .vkuiView__panel--prev .vkuiView__panel-overlay{animation:vkuianimation-ios-fade-in .6s cubic-bezier(.4,0,.2,1);animation:vkuianimation-ios-fade-in .6s var(--vkui--animation_easing_platform)}.vkuiView--ios .vkuiView__panel--next .vkuiView__panel-overlay{animation:vkuianimation-ios-fade-out .6s cubic-bezier(.4,0,.2,1) forwards;animation:vkuianimation-ios-fade-out .6s var(--vkui--animation_easing_platform) forwards}.vkuiView--ios .vkuiView__panel--next~.vkuiView__panel--prev .vkuiView__panel-overlay,.vkuiView--ios .vkuiView__panel--prev~.vkuiView__panel--next .vkuiView__panel-overlay{display:none}.vkuiView--ios.vkuiView--no-motion .vkuiView__panel,.vkuiView--ios.vkuiView--no-motion .vkuiView__panel .vkuiInternalPanel__in{animation:none}.vkuiView--ios .vkuiView__panel--active .vkuiView__panel-overlay{display:none}@keyframes vkuianimation-ios-next-forward{0%{transform:translate3d(100%,0,0)}to{transform:translateZ(0)}}@keyframes vkuianimation-ios-next-back{0%{transform:translate3d(-50%,0,0)}to{transform:translateZ(0)}}@keyframes vkuianimation-ios-prev-forward{0%{transform:translateZ(0)}to{transform:translate3d(-50%,0,0)}}@keyframes vkuianimation-ios-prev-back{0%{transform:translateZ(0)}to{transform:translate3d(100%,0,0)}}@keyframes vkuianimation-ios-fade-in{0%{opacity:0}to{opacity:.3}}@keyframes vkuianimation-ios-fade-out{0%{opacity:.3}to{opacity:0}}
25
25
  .vkuiPanel{height:100%;position:relative;width:100%}.vkuiPanel:before{content:"";height:100%;left:0;position:absolute;top:0;width:100%}.vkuiPanel__in{box-sizing:border-box;display:flex;flex-direction:column;min-height:100%;position:relative;width:100%}.vkuiPanel__centered{align-items:center;box-sizing:border-box;display:flex;flex:1 0;flex-direction:column;justify-content:center}.vkuiPanel__centered .vkuiInternalPanelHeader--ios.vkuiInternalPanelHeader--vis+*,.vkuiPanel__centered .vkuiInternalPanelHeader--vis+*{margin-top:56px;margin-top:var(--vkui--size_panel_header_height--regular)}.vkuiPanel--sizeX-compact .vkuiPanel__centered .vkuiInternalPanelHeader--sep+*{margin-top:calc(56px + 5px);margin-top:calc(var(--vkui--size_panel_header_height--regular) + 5px)}@media (max-width:767.9px){.vkuiPanel--sizeX-none .vkuiPanel__centered .vkuiInternalPanelHeader--sep+*{margin-top:calc(56px + 5px);margin-top:calc(var(--vkui--size_panel_header_height--regular) + 5px)}}.vkuiPanel--sizeX-compact .vkuiPanel__centered .vkuiInternalPanelHeader--ios.vkuiInternalPanelHeader--sep+*{margin-top:calc(56px + 5px);margin-top:calc(var(--vkui--size_panel_header_height--regular) + 5px)}@media (max-width:767.9px){.vkuiPanel--sizeX-none .vkuiPanel__centered .vkuiInternalPanelHeader--ios.vkuiInternalPanelHeader--sep+*{margin-top:calc(56px + 5px);margin-top:calc(var(--vkui--size_panel_header_height--regular) + 5px)}}.vkuiPanel--sizeX-compact .vkuiPanel__centered .vkuiInternalPanelHeader--vkcom.vkuiInternalPanelHeader--sep+*{margin-top:calc(56px + 5px);margin-top:calc(var(--vkui--size_panel_header_height--regular) + 5px)}@media (max-width:767.9px){.vkuiPanel--sizeX-none .vkuiPanel__centered .vkuiInternalPanelHeader--vkcom.vkuiInternalPanelHeader--sep+*{margin-top:calc(56px + 5px);margin-top:calc(var(--vkui--size_panel_header_height--regular) + 5px)}}.vkuiPanel--sizeX-regular .vkuiPanel__centered .vkuiInternalPanelHeader--sep+*{margin-top:calc(56px + 16px);margin-top:calc(var(--vkui--size_panel_header_height--regular) + 16px)}@media (min-width:768px){.vkuiPanel--sizeX-none .vkuiPanel__centered .vkuiInternalPanelHeader--sep+*{margin-top:calc(56px + 16px);margin-top:calc(var(--vkui--size_panel_header_height--regular) + 16px)}}.vkuiPanel--sizeX-regular .vkuiPanel__centered .vkuiInternalPanelHeader--ios.vkuiInternalPanelHeader--sep+*{margin-top:calc(56px + 16px);margin-top:calc(var(--vkui--size_panel_header_height--regular) + 16px)}@media (min-width:768px){.vkuiPanel--sizeX-none .vkuiPanel__centered .vkuiInternalPanelHeader--ios.vkuiInternalPanelHeader--sep+*{margin-top:calc(56px + 16px);margin-top:calc(var(--vkui--size_panel_header_height--regular) + 16px)}}.vkuiPanel--sizeX-regular .vkuiPanel__centered .vkuiInternalPanelHeader--vkcom.vkuiInternalPanelHeader--sep+*{margin-top:calc(56px + 16px);margin-top:calc(var(--vkui--size_panel_header_height--regular) + 16px)}@media (min-width:768px){.vkuiPanel--sizeX-none .vkuiPanel__centered .vkuiInternalPanelHeader--vkcom.vkuiInternalPanelHeader--sep+*{margin-top:calc(56px + 16px);margin-top:calc(var(--vkui--size_panel_header_height--regular) + 16px)}}.vkuiInternalView--ios .vkuiPanel__in{padding-bottom:0;padding-bottom:var(--vkui_internal--safe_area_inset_bottom);padding:0;padding:0 var(--vkui_internal--safe_area_inset_right) var(--vkui_internal--safe_area_inset_bottom) var(--vkui_internal--safe_area_inset_left)}.vkuiInternalEpic--hasTabbar .vkuiPanel__in{padding-bottom:calc(0px + 48px);padding-bottom:calc(var(--vkui_internal--safe_area_inset_bottom) + var(--vkui_internal--tabbar_height))}.vkuiPanel__in-before{height:1px;margin-bottom:-1px}.vkuiPanel__in-after{height:1px;margin-top:-1px}.vkuiPanel .vkuiPanel__in,.vkuiPanel:before{background-color:#fff;background-color:var(--vkui--color_background_content)}.vkuiPanel--layout-card .vkuiPanel__in,.vkuiPanel--layout-card:before{background-color:#ebedf0;background-color:var(--vkui--color_background)}.vkuiPanel--sizeX-regular .vkuiPanel__in,.vkuiPanel--sizeX-regular:before{background-color:initial}@media (min-width:768px){.vkuiPanel--sizeX-none .vkuiPanel__in,.vkuiPanel--sizeX-none:before{background-color:initial}}
26
- .vkuiPanelHeaderButton{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;box-shadow:none;color:currentColor;display:block;margin:0;padding:0;position:relative}.vkuiPanelHeaderButton[disabled]{opacity:.6}.vkuiPanelHeaderButton--primitive{height:48px;line-height:48px;padding:0 12px}.vkuiPanelHeaderButton--ios{align-items:center;display:flex;font-size:17px;position:relative}.vkuiPanelHeaderButton--ios.vkuiPanelHeaderButton--primitive{height:44px;line-height:44px}.vkuiPanelHeaderButton--ios .vkuiIcon--24{padding:10px}.vkuiPanelHeaderButton--ios .vkuiIcon--28{padding:8px}.vkuiPanelHeaderButton--android.vkuiPanelHeaderButton--notPrimitive{border-radius:50%}.vkuiPanelHeaderButton--android .vkuiIcon--24{padding:12px}.vkuiPanelHeaderButton--android .vkuiIcon--28{padding:10px}.vkuiPanelHeaderButton--vkcom{color:#818c99;color:var(--vkui--color_text_secondary)}.vkuiPanelHeaderButton--vkcom>:not(.vkuiInternalCounter){opacity:.7;transition:opacity .3s}.vkuiPanelHeaderButton--vkcom.vkuiPanelHeaderButton--active>:not(.vkuiInternalCounter),.vkuiPanelHeaderButton--vkcom.vkuiPanelHeaderButton--hover>:not(.vkuiInternalCounter){opacity:1}.vkuiPanelHeaderButton--vkcom{align-items:center;display:flex;padding:10px}.vkuiPanelHeaderButton--vkcom.vkuiPanelHeaderButton--notPrimitive{border-radius:50%}.vkuiPanelHeaderBack--vkcom.vkuiPanelHeaderBack--has-label{padding-right:11px}@media (min-width:768px){.vkuiPanelHeaderBack--ios.vkuiPanelHeaderBack--has-label:not(.vkuiPanelHeaderBack--sizeX-compact){padding-right:8px}}.vkuiPanelHeaderBack--sizeX-compact.vkuiPanelHeaderBack--ios .vkuiPanelHeaderButton__label{display:none}@media (max-width:767.9px){.vkuiPanelHeaderBack--sizeX-none.vkuiPanelHeaderBack--ios .vkuiPanelHeaderButton__label{display:none}}
26
+ .vkuiPanelHeaderButton{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;box-shadow:none;color:currentColor;display:block;margin:0;padding:0;position:relative}.vkuiPanelHeaderButton[disabled]{opacity:.6}.vkuiPanelHeaderButton--primitive{height:48px;line-height:48px;padding:0 10px}.vkuiPanelHeaderButton--ios{align-items:center;display:flex;font-size:17px;position:relative}.vkuiPanelHeaderButton--ios.vkuiPanelHeaderButton--primitive{height:44px;line-height:44px}.vkuiPanelHeaderButton--ios .vkuiIcon--24{padding:10px}.vkuiPanelHeaderButton--ios .vkuiIcon--28{padding:8px}.vkuiPanelHeaderBack--ios .vkuiIcon--w-20{padding-left:4px}.vkuiPanelHeaderButton--android.vkuiPanelHeaderButton--notPrimitive{border-radius:50%}.vkuiPanelHeaderButton--android .vkuiIcon--24{padding:12px}.vkuiPanelHeaderButton--android .vkuiIcon--28{padding:10px}.vkuiPanelHeaderButton--vkcom{color:#818c99;color:var(--vkui--color_text_secondary)}.vkuiPanelHeaderButton--vkcom>:not(.vkuiInternalCounter){opacity:.7;transition:opacity .3s}.vkuiPanelHeaderButton--vkcom.vkuiPanelHeaderButton--active>:not(.vkuiInternalCounter),.vkuiPanelHeaderButton--vkcom.vkuiPanelHeaderButton--hover>:not(.vkuiInternalCounter){opacity:1}.vkuiPanelHeaderButton--vkcom{align-items:center;display:flex;padding:10px}.vkuiPanelHeaderButton--vkcom.vkuiPanelHeaderButton--notPrimitive{border-radius:50%}.vkuiPanelHeaderBack--vkcom.vkuiPanelHeaderBack--has-label{padding-right:11px}@media (min-width:768px){.vkuiPanelHeaderBack--ios.vkuiPanelHeaderBack--has-label:not(.vkuiPanelHeaderBack--sizeX-compact){padding-right:8px}}.vkuiPanelHeaderBack--sizeX-compact.vkuiPanelHeaderBack--ios .vkuiPanelHeaderButton__label{display:none}@media (max-width:767.9px){.vkuiPanelHeaderBack--sizeX-none.vkuiPanelHeaderBack--ios .vkuiPanelHeaderButton__label{display:none}}
27
27
  .vkuiPanelHeader{position:relative}.vkuiPanelHeader--vis.vkuiPanelHeader--fixed:before{content:"";display:block}.vkuiPanelHeader:not(.vkuiPanelHeader--vis):not(.vkuiPanelHeader--fixed){height:0;z-index:10;z-index:var(--vkui_internal--z_index_panel_header)}.vkuiPanelHeader__fixed{z-index:10;z-index:var(--vkui_internal--z_index_panel_header)}.vkuiPanelHeader__in{align-items:center;background:#fff;background:var(--vkui--color_background_content);display:flex;justify-content:space-between;position:relative;white-space:nowrap}.vkuiPanelHeader--trnsp .vkuiPanelHeader__in{background:transparent}.vkuiPanelHeader--sizeX-regular .vkuiPanelHeader--shadow .vkuiPanelHeader__in{box-shadow:0 0 4px rgba(0,0,0,.08)}@media (min-width:768px){.vkuiPanelHeader--sizeX-none .vkuiPanelHeader--shadow .vkuiPanelHeader__in{box-shadow:0 0 4px rgba(0,0,0,.08)}}.vkuiPanelHeader__before{box-sizing:border-box;color:#2688eb;color:var(--vkui--color_icon_accent_themed);display:flex;flex-shrink:0}.vkuiPanelHeader__content{overflow:hidden}.vkuiPanelHeader__content>*{display:block;overflow:hidden;text-overflow:ellipsis}.vkuiPanelHeader__content-in{color:#000;color:var(--vkui--color_text_primary);font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_family_accent);font-weight:500}.vkuiPanelHeader:before,.vkuiPanelHeader__in{height:56px;height:var(--vkui--size_panel_header_height--regular);padding-top:0;padding-top:var(--vkui_internal--safe_area_inset_top)}.vkuiPanelHeader__after{align-items:center;box-sizing:border-box;color:#2688eb;color:var(--vkui--color_icon_accent_themed);display:flex;justify-content:flex-end}.vkuiPanelHeader__after>:not(:last-child){margin-right:4px}.vkuiPanelHeader--ios .vkuiPanelHeader__before{flex-basis:0;flex-grow:1;flex-shrink:0;opacity:1;padding:4px 0 4px 4px;transition:opacity .3s cubic-bezier(.4,0,.2,1);transition:opacity .3s var(--vkui--animation_easing_platform)}.vkuiPanelHeader--ios .vkuiPanelHeader__before .vkuiPanelHeaderButton+.vkuiPanelHeaderButton--primitive{margin-left:-6px;padding-left:0}.vkuiPanelHeader--ios .vkuiPanelHeader__content{opacity:1;text-align:center;transition:opacity .3s cubic-bezier(.4,0,.2,1);transition:opacity .3s var(--vkui--animation_easing_platform)}.vkuiPanelHeader--ios .vkuiPanelHeader__content-in{font-size:21px}.vkuiPanelHeader--ios .vkuiPanelHeader__content>*{padding:0 4px}.vkuiPanelHeader--ios.vkuiPanelHeader--no-before .vkuiPanelHeader__content{padding-left:8px}.vkuiPanelHeader--ios.vkuiPanelHeader--no-after .vkuiPanelHeader__content>*{padding-right:0}.vkuiPanelHeader--ios.vkuiPanelHeader--no-after .vkuiPanelHeader__content{padding-right:8px}.vkuiPanelHeader--ios .vkuiPanelHeader__after{flex-basis:0;flex-grow:1;flex-shrink:0;opacity:1;padding:4px 4px 4px 0;transition:opacity .3s cubic-bezier(.4,0,.2,1);transition:opacity .3s var(--vkui--animation_easing_platform)}.vkuiView--ios .vkuiView__panel--prev .vkuiPanelHeader__after,.vkuiView--ios .vkuiView__panel--prev .vkuiPanelHeader__before,.vkuiView--ios .vkuiView__panel--prev .vkuiPanelHeader__content{opacity:0}.vkuiPanelHeader--android .vkuiPanelHeader__before:not(:empty){padding:4px 0 4px 4px}.vkuiPanelHeader--android .vkuiPanelHeader__content{align-items:center;flex-grow:1;max-width:100%}.vkuiPanelHeader--android .vkuiPanelHeader__content-in{font-size:23px}.vkuiPanelHeader--android .vkuiPanelHeader__content>*{padding:0 12px}.vkuiInternalSplitCol--spaced .vkuiPanelHeader--android.vkuiPanelHeader--no-before:not(.vkuiInternalModalPageHeader__in) .vkuiPanelHeader__content,.vkuiInternalSplitCol--viewWidth-tabletPlus.vkuiInternalSplitCol--spaced-none.vkuiInternalSplitCol--spaced-auto .vkuiPanelHeader--android.vkuiPanelHeader--no-before:not(.vkuiInternalModalPageHeader__in) .vkuiPanelHeader__content{padding-left:0}@media (min-width:768px){.vkuiInternalSplitCol--viewWidth-none.vkuiInternalSplitCol--spaced-none.vkuiInternalSplitCol--spaced-auto .vkuiPanelHeader--android.vkuiPanelHeader--no-before:not(.vkuiInternalModalPageHeader__in) .vkuiPanelHeader__content{padding-left:0}}.vkuiPanelHeader--android.vkuiPanelHeader--no-after .vkuiPanelHeader__content>*,.vkuiPanelHeader--vkcom.vkuiPanelHeader--no-after .vkuiPanelHeader__content>*{padding-right:0}.vkuiPanelHeader--android.vkuiPanelHeader--no-after .vkuiPanelHeader__content{padding-right:16px}.vkuiPanelHeader--android.vkuiPanelHeader--no-before .vkuiPanelHeader__content{padding-left:16px}.vkuiInternalSplitCol--spaced .vkuiPanelHeader--android.vkuiPanelHeader--no-after:not(.vkuiInternalModalPageHeader__in) .vkuiPanelHeader__content,.vkuiInternalSplitCol--viewWidth-tabletPlus.vkuiInternalSplitCol--spaced-none.vkuiInternalSplitCol--spaced-auto .vkuiPanelHeader--android.vkuiPanelHeader--no-after:not(.vkuiInternalModalPageHeader__in) .vkuiPanelHeader__content{padding-right:0}@media (min-width:768px){.vkuiInternalSplitCol--viewWidth-none.vkuiInternalSplitCol--spaced-none.vkuiInternalSplitCol--spaced-auto .vkuiPanelHeader--android.vkuiPanelHeader--no-after:not(.vkuiInternalModalPageHeader__in) .vkuiPanelHeader__content{padding-right:0}}.vkuiPanelHeader--android .vkuiPanelHeader__after:not(:empty),.vkuiPanelHeader--vkcom .vkuiPanelHeader__after:not(:empty){padding:4px 4px 4px 0}.vkuiPanelHeader--vkcom{position:relative;z-index:10;z-index:var(--vkui_internal--z_index_panel_header)}.vkuiPanelHeader--vkcom.vkuiPanelHeader--sizeX-regular:not(.vkuiInternalModalPageHeader__in):not(.vkuiPanelHeader--sep) .vkuiPanelHeader__in:after{background-color:#fff;background-color:var(--vkui--color_background_content);bottom:0;content:"";height:var(--vkui--size_border--regular);left:var(--vkui--size_border--regular);position:absolute;right:var(--vkui--size_border--regular)}@media (min-width:768px){.vkuiPanelHeader--vkcom.vkuiPanelHeader--sizeX-none:not(.vkuiInternalModalPageHeader__in):not(.vkuiPanelHeader--sep) .vkuiPanelHeader__in:after{background-color:#fff;background-color:var(--vkui--color_background_content);bottom:0;content:"";height:var(--vkui--size_border--regular);left:var(--vkui--size_border--regular);position:absolute;right:var(--vkui--size_border--regular)}}.vkuiPanelHeader--vkcom.vkuiPanelHeader--sizeX-regular:not(.vkuiInternalModalPageHeader__in) .vkuiPanelHeader__in{border-bottom:0;border-top-left-radius:12px;border-top-left-radius:var(--vkui--size_border_radius_paper--regular);border-top-right-radius:12px;border-top-right-radius:var(--vkui--size_border_radius_paper--regular);box-shadow:0 0 0 var(--vkui--size_border--regular) rgba(0,0,0,.12) inset;box-shadow:0 0 0 var(--vkui--size_border--regular) var(--vkui--color_field_border_alpha) inset}@media (min-width:768px){.vkuiPanelHeader--vkcom.vkuiPanelHeader--sizeX-none:not(.vkuiInternalModalPageHeader__in) .vkuiPanelHeader__in{border-bottom:0;border-top-left-radius:12px;border-top-left-radius:var(--vkui--size_border_radius_paper--regular);border-top-right-radius:12px;border-top-right-radius:var(--vkui--size_border_radius_paper--regular);box-shadow:0 0 0 var(--vkui--size_border--regular) rgba(0,0,0,.12) inset;box-shadow:0 0 0 var(--vkui--size_border--regular) var(--vkui--color_field_border_alpha) inset}}.vkuiPanelHeader--vkcom .vkuiPanelHeader__content{text-align:center}.vkuiPanelHeader--vkcom .vkuiPanelHeader__before:not(:empty){padding:0 0 0 4px}.vkuiPanelHeader--vkcom .vkuiPanelHeader__after,.vkuiPanelHeader--vkcom .vkuiPanelHeader__before{flex-basis:0;flex-grow:1;flex-shrink:0}.vkuiPanelHeader__separator{margin-top:calc(-1 * var(--vkui--size_border--regular))}.vkuiPanelHeader--no-before .vkuiPanelHeader__content>*{padding-left:0}.vkuiInternalPanel--centered .vkuiPanelHeader{left:0;position:absolute;top:0;width:100%}
28
28
  .vkuiSeparator{color:#d7d8d9;color:var(--vkui--color_separator_primary)}.vkuiSeparator__in{background:currentColor;border:0;color:inherit;height:var(--vkui--size_border--regular);margin:0;transform-origin:center top}.vkuiSeparator--padded .vkuiSeparator__in{margin-left:16px;margin-left:var(--vkui--size_base_padding_horizontal--regular);margin-right:16px;margin-right:var(--vkui--size_base_padding_horizontal--regular)}.vkuiInternalModalPage--sizeX-regular .vkuiSeparator--padded{padding-left:8px;padding-right:8px}@media (min-width:768px){.vkuiInternalModalPage--sizeX-none .vkuiSeparator--padded{padding-left:8px;padding-right:8px}}
29
29
  .vkuiSpacing{box-sizing:border-box;position:relative}
@@ -48,9 +48,9 @@
48
48
  .vkuiActionSheetItem{align-items:center;box-sizing:border-box;color:#000;color:var(--vkui--color_text_primary);display:flex;min-height:48px;overflow:hidden;padding:0 20px;position:relative;text-decoration:none}.vkuiActionSheetItem__after,.vkuiActionSheetItem__before,.vkuiActionSheetItem__container{position:relative}.vkuiActionSheetItem__after,.vkuiActionSheetItem__before{flex-shrink:0}.vkuiActionSheetItem__container{flex-grow:1;max-width:100%;padding:10px 0}.vkuiActionSheetItem--ellipsis{overflow:hidden;white-space:nowrap}.vkuiActionSheetItem__content{align-items:baseline;display:flex;justify-content:space-between;overflow:hidden}.vkuiActionSheetItem--ellipsis .vkuiActionSheetItem__content{justify-content:flex-start}.vkuiActionSheetItem__children{min-width:0;overflow:hidden;text-overflow:ellipsis}.vkuiActionSheetItem__subtitle{color:#818c99;color:var(--vkui--color_text_secondary);margin-top:2px;overflow:hidden;text-overflow:ellipsis}.vkuiActionSheetItem__meta{color:#818c99;color:var(--vkui--color_text_secondary);flex-shrink:0;margin-left:6px}.vkuiActionSheetItem__before{color:#2688eb;color:var(--vkui--color_icon_accent);margin-right:16px}.vkuiActionSheetItem--menu .vkuiActionSheetItem__before{margin-right:12px}.vkuiActionSheetItem--ios .vkuiActionSheetItem__before{color:#2688eb;color:var(--vkui--color_icon_accent_themed);margin-right:18px}.vkuiActionSheetItem--mode-destructive .vkuiActionSheetItem__container:first-child{color:#e64646;color:var(--vkui--color_text_negative)}.vkuiActionSheetItem--mode-destructive .vkuiActionSheetItem__before{color:#e64646;color:var(--vkui--color_icon_negative)}.vkuiActionSheetItem__after{color:#2688eb;color:var(--vkui--color_icon_accent);display:flex;flex-direction:row;margin-left:16px}.vkuiActionSheetItem__after>:not(:last-child){margin-right:12px}.vkuiActionSheetItem--ios{background:#fff;background:var(--vkui--color_background_modal);color:#2688eb;color:var(--vkui--color_text_accent_themed);min-height:56px;padding:14px 18px}.vkuiActionSheetItem--rich{color:#000;color:var(--vkui--color_text_primary)}.vkuiActionSheet--ios.vkuiActionSheetItem--selectable{padding:14px 16px}.vkuiActionSheetItem--ios.vkuiActionSheetItem--mode-destructive{color:#e64646;color:var(--vkui--color_text_negative)}.vkuiActionSheetItem--ios:before{background-color:#fff;background-color:var(--vkui--color_background_modal);content:"";height:100%;left:0;position:absolute;top:0;transition:opacity .15s ease-out,background-color .15s ease-out;width:100%}.vkuiActionSheetItem--ios:after{background:rgba(0,0,0,.12);background:var(--vkui--color_separator_primary_alpha);content:"";height:1px;left:0;position:absolute;right:0;top:0;transform-origin:center bottom}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:2dppx){.vkuiActionSheetItem--ios:after{transform:scaleY(.5)}}@media (-webkit-min-device-pixel-ratio:3),(min-resolution:3dppx){.vkuiActionSheetItem--ios:after{transform:scaleY(.33)}}.vkuiActionSheet--ios .vkuiActionSheetItem--last:after,.vkuiActionSheet--ios .vkuiActionSheet__header:empty,.vkuiActionSheetItem--ios:first-child:after,.vkuiActionSheetItem--mode-cancel:after{content:none}.vkuiActionSheetItem--ios.vkuiActionSheetItem--active:before{background-color:rgba(0,16,61,.08);background-color:var(--vkui--color_transparent--active);opacity:1;transition:none}.vkuiActionSheetItem--ios .vkuiActionSheetItem__container{padding:0}.vkuiActionSheetItem--ios .vkuiActionSheetItem--centered{justify-content:center}.vkuiActionSheetItem--mode-cancel{min-height:52px}.vkuiActionSheetItem--menu{cursor:pointer;width:auto}.vkuiActionSheetItem[disabled] .vkuiActionSheetItem__children,.vkuiActionSheetItem[disabled] .vkuiActionSheetItem__meta,.vkuiActionSheetItem[disabled] .vkuiActionSheetItem__subtitle{color:#818c99;color:var(--vkui--color_text_secondary)}.vkuiActionSheetItem[disabled] .vkuiActionSheetItem__before,.vkuiActionSheetItem[disabled] .vkuiActionSheetItem__marker{color:#99a2ad;color:var(--vkui--color_icon_secondary)}.vkuiActionSheetItem--sizeY-compact{min-height:32px}.vkuiActionSheetItem--sizeY-compact.vkuiActionSheetItem--ios{min-height:36px;padding:4px 20px 4px 18px}.vkuiActionSheetItem--sizeY-compact:not(.vkuiActionSheetItem--ios)+.vkuiActionSheetItem--sizeY-compact:not(.vkuiActionSheetItem--ios){margin-top:2px}.vkuiActionSheetItem--sizeY-compact .vkuiActionSheetItem__container{padding:5px 0}
49
49
  .vkuiActionSheetItemRadio__input~*{display:none}.vkuiActionSheetItemRadio__input:checked~*{display:block}
50
50
  .vkuiScreenSpinner{animation:vkuiscreen-spinner-intro .3s ease}.vkuiScreenSpinner--clickable{cursor:pointer}.vkuiScreenSpinner__spinner{opacity:1;transition:opacity .1s ease}.vkuiScreenSpinner__spinner--hidden{opacity:0}.vkuiScreenSpinner__container{background:#fff;background:var(--vkui--color_background_modal);border-radius:8px;border-radius:var(--vkui--size_border_radius--regular);box-shadow:0 0 8px rgba(0,0,0,.12),0 16px 16px rgba(0,0,0,.16);box-shadow:var(--vkui--elevation4);color:#818c99;color:var(--vkui--color_icon_medium);height:88px;position:relative;width:88px}.vkuiScreenSpinner__icon{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;top:0;width:100%}.vkuiScreenSpinner__icon .vkuiIcon{animation:vkuiscreen-spinner-intro .2s ease}.vkuiScreenSpinner__icon--state-done .vkuiIcon path{stroke-dasharray:50;stroke-dashoffset:50;animation:vkuiscreen-spinner-icon-done .6s cubic-bezier(.4,0,.2,1) .3s forwards;animation:vkuiscreen-spinner-icon-done .6s .3s var(--vkui--animation_easing_platform) forwards}@keyframes vkuiscreen-spinner-icon-done{0%{stroke-dashoffset:50}to{stroke-dashoffset:0}}@keyframes vkuiscreen-spinner-intro{0%{opacity:0}to{opacity:1}}
51
- .vkuiSnackbar{bottom:0;left:auto;padding-bottom:0;padding-bottom:var(--vkui_internal--safe_area_inset_bottom);padding-left:0;padding-left:var(--vkui_internal--safe_area_inset_left);padding-right:0;padding-right:var(--vkui_internal--safe_area_inset_right);position:fixed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;z-index:100;z-index:var(--vkui--z_index_popout)}.vkuiInternalEpic--hasTabbar .vkuiSnackbar{padding-bottom:calc(48px + 0px);padding-bottom:calc(var(--vkui_internal--tabbar_height) + var(--vkui_internal--safe_area_inset_bottom))}.vkuiSnackbar__body,.vkuiSnackbar__in{transition:transform .32s cubic-bezier(.4,0,.2,1);transition:transform .32s var(--vkui--animation_easing_platform)}.vkuiSnackbar__in{animation:vkuianimation-snackbar-intro-vertical .34s cubic-bezier(.4,0,.2,1);animation:vkuianimation-snackbar-intro-vertical .34s var(--vkui--animation_easing_platform);padding:8px}.vkuiSnackbar--closing .vkuiSnackbar__in{transform:translate3d(0,140%,0)}.vkuiSnackbar__body{align-items:center;background:#fff;background:var(--vkui--color_background_modal);border-radius:8px;border-radius:var(--vkui--size_border_radius--regular);box-shadow:0 0 8px rgba(0,0,0,.12),0 16px 16px rgba(0,0,0,.16);box-shadow:var(--vkui--elevation4);box-sizing:border-box;display:flex;min-height:56px;padding:12px}.vkuiSnackbar--mode-dark .vkuiSnackbar__body{background:#2c2d2e;background:var(--vkui--color_background_contrast_inverse)}.vkuiSnackbar__before{margin-right:12px}.vkuiSnackbar__after{margin-left:12px}.vkuiSnackbar__content{align-items:center;display:flex;flex:1;overflow:hidden}.vkuiSnackbar--layout-vertical .vkuiSnackbar__content{align-items:flex-start;flex-direction:column}.vkuiSnackbar__content-text{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:#000;color:var(--vkui--color_text_primary);display:-webkit-box;flex:1;overflow:hidden;width:100%}.vkuiSnackbar__content-subtitle{color:#6d7885;color:var(--vkui--color_text_subhead);margin-top:2px}.vkuiSnackbar--mode-dark .vkuiSnackbar__content-text{color:#fff;color:var(--vkui--color_text_contrast)}.vkuiSnackbar--layout-horizontal .vkuiSnackbar__action{margin-left:12px;position:relative}.vkuiSnackbar--layout-vertical .vkuiSnackbar__action{margin-top:2px;min-height:auto}.vkuiModalRoot .vkuiSnackbar{padding-bottom:0;padding-bottom:var(--vkui_internal--safe_area_inset_bottom)}.vkuiSnackbar--ios .vkuiSnackbar__body,.vkuiSnackbar--ios .vkuiSnackbar__in{transition:transform .4s cubic-bezier(.4,0,.2,1);transition:transform .4s var(--vkui--animation_easing_platform)}.vkuiSnackbar--desktop{bottom:0;left:0;max-width:351px}.vkuiSnackbar--desktop .vkuiSnackbar__in{animation-name:vkuianimation-snackbar-intro-horizontal;padding:12px}.vkuiSnackbar--desktop.vkuiSnackbar--closing .vkuiSnackbar__in{transform:translate3d(-140%,0,0)}.vkuiSnackbar--touched .vkuiSnackbar__body{transition:none}@keyframes vkuianimation-snackbar-intro-vertical{0%{transform:translate3d(0,140%,0)}to{transform:translateZ(0)}}@keyframes vkuianimation-snackbar-intro-horizontal{0%{transform:translate3d(-140%,0,0)}to{transform:translateZ(0)}}
51
+ .vkuiSnackbar{bottom:0;left:auto;padding-bottom:0;padding-bottom:var(--vkui_internal--safe_area_inset_bottom);padding-left:0;padding-left:var(--vkui_internal--safe_area_inset_left);padding-right:0;padding-right:var(--vkui_internal--safe_area_inset_right);position:fixed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;z-index:100;z-index:var(--vkui--z_index_popout)}.vkuiInternalEpic--hasTabbar .vkuiSnackbar{padding-bottom:calc(48px + 0px);padding-bottom:calc(var(--vkui_internal--tabbar_height) + var(--vkui_internal--safe_area_inset_bottom))}.vkuiSnackbar__body,.vkuiSnackbar__in{transition:transform .32s cubic-bezier(.4,0,.2,1);transition:transform .32s var(--vkui--animation_easing_platform)}.vkuiSnackbar__in{animation:vkuianimation-snackbar-intro-vertical .34s cubic-bezier(.4,0,.2,1);animation:vkuianimation-snackbar-intro-vertical .34s var(--vkui--animation_easing_platform);padding:8px}.vkuiSnackbar--closing .vkuiSnackbar__in{transform:translate3d(0,140%,0)}.vkuiSnackbar__body{align-items:center;background:#fff;background:var(--vkui--color_background_modal);border-radius:8px;border-radius:var(--vkui--size_card_border_radius--regular);box-shadow:0 0 8px rgba(0,0,0,.12),0 16px 16px rgba(0,0,0,.16);box-shadow:var(--vkui--elevation4);box-sizing:border-box;display:flex;min-height:56px;padding:12px}.vkuiSnackbar--mode-dark .vkuiSnackbar__body{background:#2c2d2e;background:var(--vkui--color_background_contrast_inverse)}.vkuiSnackbar__before{margin-right:12px}.vkuiSnackbar__after{margin-left:12px}.vkuiSnackbar__content{align-items:center;display:flex;flex:1;overflow:hidden}.vkuiSnackbar--layout-vertical .vkuiSnackbar__content{align-items:flex-start;flex-direction:column}.vkuiSnackbar__content-text{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:#000;color:var(--vkui--color_text_primary);display:-webkit-box;flex:1;overflow:hidden;width:100%}.vkuiSnackbar__content-subtitle{color:#6d7885;color:var(--vkui--color_text_subhead);margin-top:2px}.vkuiSnackbar--mode-dark .vkuiSnackbar__content-text{color:#fff;color:var(--vkui--color_text_contrast)}.vkuiSnackbar--layout-horizontal .vkuiSnackbar__action{margin-left:12px;position:relative}.vkuiSnackbar--layout-vertical .vkuiSnackbar__action{margin-top:2px;min-height:auto}.vkuiModalRoot .vkuiSnackbar{padding-bottom:0;padding-bottom:var(--vkui_internal--safe_area_inset_bottom)}.vkuiSnackbar--ios .vkuiSnackbar__body,.vkuiSnackbar--ios .vkuiSnackbar__in{transition:transform .4s cubic-bezier(.4,0,.2,1);transition:transform .4s var(--vkui--animation_easing_platform)}.vkuiSnackbar--desktop{bottom:0;left:0;max-width:351px}.vkuiSnackbar--desktop .vkuiSnackbar__in{animation-name:vkuianimation-snackbar-intro-horizontal;padding:12px}.vkuiSnackbar--desktop.vkuiSnackbar--closing .vkuiSnackbar__in{transform:translate3d(-140%,0,0)}.vkuiSnackbar--touched .vkuiSnackbar__body{transition:none}@keyframes vkuianimation-snackbar-intro-vertical{0%{transform:translate3d(0,140%,0)}to{transform:translateZ(0)}}@keyframes vkuianimation-snackbar-intro-horizontal{0%{transform:translate3d(-140%,0,0)}to{transform:translateZ(0)}}
52
52
  .vkuiModalRoot,.vkuiModalRoot__mask{height:100%;width:100%}.vkuiModalRoot__mask{animation:vkuianimation-fade-in .32s ease;background:rgba(0,0,0,.4);left:0;opacity:1;position:absolute;top:0;transition:opacity 167ms ease-out;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vkuiModalRoot--touched .vkuiModalRoot__mask{transition:none}.vkuiModalRoot--switching .vkuiModalRoot__mask{pointer-events:none}.vkuiModalRoot__viewport{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0}:not(.vkuiModalRoot--desktop).vkuiModalRoot .vkuiModalRoot__viewport{top:0;top:var(--vkui_internal--safe_area_inset_top)}:not(.vkuiModalRoot--desktop).vkuiModalRoot--hasCustomPanelHeaderAfterSlot .vkuiModalRoot__viewport{top:calc(0px + 56px);top:calc(var(--vkui_internal--safe_area_inset_top) + var(--vkui--size_panel_header_height--regular))}.vkuiModalRoot__modal{box-sizing:border-box;height:100%;position:absolute;width:100%}@keyframes vkuianimation-fade-in{0%{opacity:0}to{opacity:1}}
53
- .vkuiModalPage{box-sizing:border-box;height:100%;overflow:hidden;pointer-events:none;position:absolute;width:100%}.vkuiModalPage--desktop{align-items:center;display:flex;justify-content:center}.vkuiModalPage__in-wrap{align-items:flex-end;bottom:0;display:flex;height:100%;left:0;margin-left:auto;margin-right:auto;pointer-events:auto;position:absolute;right:0;transform:translateY(100%);transition:transform .32s cubic-bezier(.4,0,.2,1);transition:transform .32s var(--vkui--animation_easing_platform);width:100%}.vkuiModalPage--ios .vkuiModalPage__in-wrap{transition:transform .4s cubic-bezier(.4,0,.2,1);transition:transform .4s var(--vkui--animation_easing_platform)}.vkuiModalPage--desktop .vkuiModalPage__in-wrap{align-items:normal;height:auto;margin:32px 56px;max-height:640px;opacity:0;position:relative;transform:none;transition:opacity .34s cubic-bezier(.4,0,.2,1);transition:opacity .34s var(--vkui--animation_easing_platform)}@media (max-height:672px){.vkuiModalPage--desktop .vkuiModalPage__in-wrap{max-height:calc(100% - 32px * 2)}}.vkuiModalPage--size-s .vkuiModalPage__in-wrap{max-width:430px;max-width:var(--vkui--size_popup_small--regular)}.vkuiModalPage--size-m .vkuiModalPage__in-wrap{max-width:680px;max-width:var(--vkui--size_popup_medium--regular)}.vkuiModalPage--size-l .vkuiModalPage__in-wrap{max-width:880px;max-width:var(--vkui--size_popup_large--regular)}.vkuiModalPage__in{--vkui_internal--background:var(--vkui--color_background_modal);background-color:#fff;background-color:var(--vkui--color_background_modal);border-top-left-radius:12px;border-top-left-radius:var(--vkui--size_border_radius_paper--regular);border-top-right-radius:12px;border-top-right-radius:var(--vkui--size_border_radius_paper--regular);box-sizing:border-box;display:flex;flex-direction:column;height:100%;overflow:visible;position:relative;width:100%}.vkuiModalPage--desktop .vkuiModalPage__in{border-bottom-left-radius:12px;border-bottom-left-radius:var(--vkui--size_border_radius_paper--regular);border-bottom-right-radius:12px;border-bottom-right-radius:var(--vkui--size_border_radius_paper--regular);box-shadow:0 0 2px rgba(0,0,0,.08),0 4px 16px rgba(0,0,0,.08);box-shadow:var(--vkui--elevation3);height:auto}.vkuiModalPage__header{width:100%}.vkuiModalPage__content-wrap{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative}.vkuiModalPage__header:empty+.vkuiModalPage__content-wrap{border-radius:inherit}.vkuiModalPage__content{box-sizing:border-box;height:100%;overflow-x:hidden;overflow-y:hidden}.vkuiInternalModalRoot__modal--expandable .vkuiModalPage__content,.vkuiModalPage--desktop .vkuiModalPage__content{-webkit-overflow-scrolling:touch;overflow-y:auto}.vkuiInternalModalRoot__modal--expandable:not(.vkuiInternalModalRoot__modal--collapsed) .vkuiModalPage__content-in,.vkuiModalPage--desktop .vkuiModalPage__content-in{height:100%}.vkuiModalPage__bottom-inset{flex-shrink:0;height:0;height:var(--vkui_internal--safe_area_inset_bottom)}.vkuiInternalModalRoot--touched .vkuiModalPage__in-wrap{transition:none}.vkuiInternalModalRoot--switching .vkuiModalPage__in-wrap{pointer-events:none}.vkuiInternalModalRoot__modal--collapsed .vkuiModalPage__content,.vkuiInternalModalRoot__modal--dragging .vkuiModalPage__content{overflow:hidden;touch-action:pan-y}
53
+ .vkuiModalPage{box-sizing:border-box;height:100%;overflow:hidden;pointer-events:none;position:absolute;width:100%}.vkuiModalPage--desktop{align-items:center;display:flex;justify-content:center}.vkuiModalPage__in-wrap{align-items:flex-end;bottom:0;display:flex;height:100%;left:0;margin-left:auto;margin-right:auto;pointer-events:auto;position:absolute;right:0;transform:translateY(100%);transition:transform .32s cubic-bezier(.4,0,.2,1);transition:transform .32s var(--vkui--animation_easing_platform);width:100%}.vkuiModalPage--ios .vkuiModalPage__in-wrap{transition:transform .4s cubic-bezier(.4,0,.2,1);transition:transform .4s var(--vkui--animation_easing_platform)}.vkuiModalPage--desktop .vkuiModalPage__in-wrap{align-items:normal;height:auto;margin:32px 56px;max-height:640px;opacity:0;position:relative;transform:none;transition:opacity .34s cubic-bezier(.4,0,.2,1);transition:opacity .34s var(--vkui--animation_easing_platform)}@media (max-height:672px){.vkuiModalPage--desktop .vkuiModalPage__in-wrap{max-height:calc(100% - 32px * 2)}}.vkuiModalPage--size-s .vkuiModalPage__in-wrap{max-width:430px;max-width:var(--vkui--size_popup_small--regular)}.vkuiModalPage--size-m .vkuiModalPage__in-wrap{max-width:680px;max-width:var(--vkui--size_popup_medium--regular)}.vkuiModalPage--size-l .vkuiModalPage__in-wrap{max-width:880px;max-width:var(--vkui--size_popup_large--regular)}.vkuiModalPage__in{--vkui_internal--background:var(--vkui--color_background_modal);background-color:#fff;background-color:var(--vkui--color_background_modal);border-top-left-radius:12px;border-top-left-radius:var(--vkui--size_border_radius_paper--regular);border-top-right-radius:12px;border-top-right-radius:var(--vkui--size_border_radius_paper--regular);box-sizing:border-box;display:flex;flex-direction:column;height:100%;overflow:visible;position:relative;width:100%}.vkuiModalPage--desktop .vkuiModalPage__in{border-bottom-left-radius:12px;border-bottom-left-radius:var(--vkui--size_border_radius_paper--regular);border-bottom-right-radius:12px;border-bottom-right-radius:var(--vkui--size_border_radius_paper--regular);box-shadow:0 0 2px rgba(0,0,0,.08),0 4px 16px rgba(0,0,0,.08);box-shadow:var(--vkui--elevation3);height:auto}.vkuiModalPage__header{width:100%}.vkuiModalPage__content-wrap{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative}.vkuiModalPage__header:empty+.vkuiModalPage__content-wrap{border-radius:inherit}.vkuiModalPage__content{box-sizing:border-box;height:100%;overflow-x:hidden;overflow-y:hidden}.vkuiInternalModalRoot__modal--expandable .vkuiModalPage__content,.vkuiModalPage--desktop .vkuiModalPage__content{-webkit-overflow-scrolling:touch;overflow-y:auto}.vkuiInternalModalRoot__modal--expandable .vkuiModalPage__content-in,.vkuiModalPage--desktop .vkuiModalPage__content-in{height:100%}.vkuiModalPage__bottom-inset{flex-shrink:0;height:0;height:var(--vkui_internal--safe_area_inset_bottom)}.vkuiInternalModalRoot--touched .vkuiModalPage__in-wrap{transition:none}.vkuiInternalModalRoot--switching .vkuiModalPage__in-wrap{pointer-events:none}.vkuiInternalModalRoot__modal--collapsed .vkuiModalPage__content,.vkuiInternalModalRoot__modal--dragging .vkuiModalPage__content{overflow:hidden;touch-action:pan-y}
54
54
  .vkuiModalPageHeader{--vkui_internal--safe_area_inset_top:0}.vkuiModalPageHeader--withGaps{padding-left:4px;padding-right:4px}.vkuiModalPageHeader--desktop.vkuiModalPageHeader--withGaps{padding-left:8px;padding-right:8px}.vkuiModalPageHeader .vkuiIcon--cancel_24,.vkuiModalPageHeader .vkuiIcon--dismiss_24{color:#99a2ad;color:var(--vkui--color_icon_secondary)}
55
55
  .vkuiModalCard{align-items:flex-end;box-sizing:border-box;display:flex;height:100%;left:0;padding:8px;position:absolute;top:0;width:100%}.vkuiModalCard__in{margin-left:auto;margin-right:auto;transform:translateY(calc(100% + 16px));transition:transform .34s cubic-bezier(.4,0,.2,1);transition:transform .34s var(--vkui--animation_easing_platform);width:100%}.vkuiModalCard--ios .vkuiModalCard__in{max-width:414px}.vkuiModalCard--android .vkuiModalCard__in{max-width:440px}.vkuiModalCard--vkcom .vkuiModalCard__in{max-width:400px}.vkuiModalCard--desktop{align-items:center}.vkuiModalCard--desktop .vkuiModalCard__in{opacity:0;transform:unset;transition:opacity .34s cubic-bezier(.4,0,.2,1);transition:opacity .34s var(--vkui--animation_easing_platform)}.vkuiInternalModalRoot--touched .vkuiModalCard__in{transition:none}
56
56
  .vkuiModalCardBase__container{--vkui_internal--background:var(--vkui--color_background_modal);background:#fff;background:var(--vkui--color_background_modal);border-radius:12px;box-shadow:0 0 2px rgba(0,0,0,.08),0 4px 16px rgba(0,0,0,.08);box-shadow:var(--vkui--elevation3);box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;margin-bottom:0;margin-bottom:var(--vkui_internal--safe_area_inset_bottom);padding:16px;pointer-events:auto;position:relative}.vkuiModalCardBase__container--softwareKeyboardOpened{margin-bottom:0}.vkuiModalCardBase__header,.vkuiModalCardBase__subheader{margin:0;padding:0 8px;text-align:center;word-break:break-word}.vkuiModalCardBase__header{color:#000;color:var(--vkui--color_text_primary)}.vkuiModalCardBase__subheader{color:#6d7885;color:var(--vkui--color_text_subhead)}.vkuiModalCardBase__header+.vkuiModalCardBase__subheader{margin-top:8px}.vkuiModalCardBase__icon{color:#2688eb;color:var(--vkui--color_icon_accent);margin:8px auto 16px}.vkuiModalCardBase__actions{display:flex;margin-top:16px}.vkuiInternalUsersStack+.vkuiModalCardBase__actions{margin-top:24px}.vkuiModalCardBase__header+.vkuiModalCardBase__actions,.vkuiModalCardBase__subheader+.vkuiModalCardBase__actions{margin-top:32px}.vkuiModalCardBase__dismiss{color:#99a2ad;color:var(--vkui--color_icon_secondary);height:48px;justify-content:center;position:absolute;right:4px;top:4px;width:48px}.vkuiModalCardBase--ios .vkuiModalCardBase__header:first-child{padding-left:36px;padding-right:36px}.vkuiModalCardBase--ios .vkuiModalCardBase__container{border-radius:14px}.vkuiModalCardBase--desktop .vkuiModalCardBase__container{padding:24px}
@@ -122,7 +122,7 @@
122
122
  .vkuiRadioGroup--mode-horizontal{display:flex}.vkuiInternalFormItem .vkuiRadioGroup{box-sizing:initial;margin:0 calc(-1 * 16px);margin:0 calc(-1 * var(--vkui--size_base_padding_horizontal--regular))}
123
123
  .vkuiCheckbox{align-items:center;display:flex;font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_family_base);justify-content:flex-start;min-height:44px;min-height:var(--vkui--size_field_height--regular);min-width:44px;min-width:var(--vkui--size_field_height--regular);padding:0 16px;padding:0 var(--vkui--size_base_padding_horizontal--regular)}.vkuiInternalFormItem .vkuiCheckbox{box-sizing:initial;margin:0 calc(-1 * 16px);margin:0 calc(-1 * var(--vkui--size_base_padding_horizontal--regular));width:100%}.vkuiCheckbox__icon{flex-shrink:0;margin-right:12px}.vkuiCheckbox__icon--indeterminate,.vkuiCheckbox__icon--on{color:#2688eb;color:var(--vkui--color_icon_accent);display:none}.vkuiCheckbox__icon--off{color:#b8c1cc;color:var(--vkui--color_icon_tertiary)}.vkuiCheckbox__content{color:#000;color:var(--vkui--color_text_primary);flex-grow:1;min-width:0;word-break:break-word}.vkuiCheckbox__description{color:#818c99;color:var(--vkui--color_text_secondary);display:block;margin-bottom:12px;margin-top:2px}.vkuiCheckbox__title{align-items:center;display:flex;justify-content:space-between;margin-top:12px}.vkuiCheckbox__title:last-child{margin-bottom:12px}.vkuiCheckbox__titleBefore{min-width:0}.vkuiCheckbox__titleAfter{color:#b8c1cc;color:var(--vkui--color_icon_tertiary);flex-shrink:0;margin-left:4px}.vkuiCheckbox__input:checked~.vkuiCheckbox__icon--on{display:flex}.vkuiCheckbox__input:checked~.vkuiCheckbox__icon--off,.vkuiCheckbox__input:indeterminate~.vkuiCheckbox__icon--indeterminate{display:none}.vkuiCheckbox__input:indeterminate~.vkuiCheckbox__icon--indeterminate{display:flex}.vkuiCheckbox__input:indeterminate~.vkuiCheckbox__icon--off,.vkuiCheckbox__input:indeterminate~.vkuiCheckbox__icon--on{display:none}.vkuiCheckbox__input[disabled]~*{opacity:.64;opacity:var(--vkui--opacity_disable_accessibility)}.vkuiCheckbox--simple{align-items:center;border-radius:50%;display:flex;height:44px;height:var(--vkui--size_field_height--regular);justify-content:center;padding:0;width:44px;width:var(--vkui--size_field_height--regular)}.vkuiCheckbox--simple .vkuiCheckbox__content{display:none}.vkuiCheckbox--simple .vkuiCheckbox__icon{margin:0}.vkuiCheckbox--sizeY-compact{min-height:36px;min-height:var(--vkui--size_field_height--compact);min-width:36px;min-width:var(--vkui--size_field_height--compact)}.vkuiCheckbox--sizeY-compact.vkuiCheckbox--simple{height:36px;height:var(--vkui--size_field_height--compact);width:36px;width:var(--vkui--size_field_height--compact)}.vkuiCheckbox--sizeY-compact .vkuiCheckbox__title{margin-top:8px}.vkuiCheckbox--sizeY-compact .vkuiCheckbox__description,.vkuiCheckbox--sizeY-compact .vkuiCheckbox__title:last-child{margin-bottom:8px}@media (max-height:414.9px),(pointer:fine) and (min-width:768px){.vkuiCheckbox--sizeY-none{min-height:36px;min-height:var(--vkui--size_field_height--compact);min-width:36px;min-width:var(--vkui--size_field_height--compact)}.vkuiCheckbox--sizeY-none.vkuiCheckbox--simple{height:36px;height:var(--vkui--size_field_height--compact);width:36px;width:var(--vkui--size_field_height--compact)}.vkuiCheckbox--sizeY-none .vkuiCheckbox__title{margin-top:8px}.vkuiCheckbox--sizeY-none .vkuiCheckbox__description,.vkuiCheckbox--sizeY-none .vkuiCheckbox__title:last-child{margin-bottom:8px}}
124
124
  .vkuiCustomSelect{cursor:pointer;display:block;position:relative;width:100%}.vkuiCustomSelect--pop-down{border-bottom-left-radius:0;border-bottom-right-radius:0}.vkuiCustomSelect--pop-up{border-top-left-radius:0;border-top-right-radius:0}.vkuiCustomSelect__control{display:none}.vkuiCustomSelect__empty{color:#818c99;color:var(--vkui--color_text_secondary);padding:12px 0;text-align:center}.vkuiCustomSelect__fetching{align-items:center;display:flex;justify-content:center}.vkuiCustomSelect__dropdown-icon{margin-right:10px}.vkuiCustomSelect--clear-icon{margin-right:-6px}.vkuiCustomSelect--sizeY-compact .vkuiCustomSelect__dropdown-icon{margin-right:8px}.vkuiCustomSelect--sizeY-compact .vkuiCustomSelect--clear-icon{margin-right:-2px}@media (max-height:414.9px),(pointer:fine) and (min-width:768px){.vkuiCustomSelect--sizeY-none .vkuiCustomSelect__dropdown-icon{margin-right:8px}.vkuiCustomSelect--sizeY-none .vkuiCustomSelect--clear-icon{margin-right:-2px}}
125
- .vkuiCustomSelectOption{align-items:center;box-sizing:border-box;color:#000;color:var(--vkui--color_text_primary);cursor:pointer;display:flex;padding:8px 12px;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;width:100%}.vkuiCustomSelectOption--hierarchy{--vkui_internal--custom_select_option_hierarchy_level:0;padding-left:calc(0 * 32px);padding-left:calc(var(--vkui_internal--custom_select_option_hierarchy_level) * var(--vkui--size_option_hierarchy--regular))}.vkuiCustomSelectOption--sizeY-regular{min-height:44px}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiCustomSelectOption--sizeY-none{min-height:44px}}.vkuiCustomSelectOption--disabled{cursor:default;opacity:.64;opacity:var(--vkui--opacity_disable_accessibility)}.vkuiCustomSelectOption--hover{background-color:rgba(0,16,61,.04);background-color:var(--vkui--color_transparent--hover)}.vkuiCustomSelectOption__before{flex-shrink:0;margin-right:7px}.vkuiCustomSelectOption__main{flex-grow:1;max-width:100%;min-width:0}.vkuiCustomSelectOption__children{min-width:0;overflow:hidden;text-overflow:ellipsis}.vkuiCustomSelectOption__after{align-items:center;display:flex;flex-shrink:0;margin-left:8px}.vkuiCustomSelectOption__description{color:#818c99;color:var(--vkui--color_text_secondary);overflow:hidden;text-overflow:ellipsis}.vkuiCustomSelectOption__selectedIcon{color:#2688eb;color:var(--vkui--color_icon_accent)}.vkuiCustomSelectOption__selectedIcon:not(:first-child){margin-left:8px}
125
+ .vkuiCustomSelectOption{align-items:center;box-sizing:border-box;color:#000;color:var(--vkui--color_text_primary);cursor:pointer;display:flex;padding:8px 12px;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.vkuiCustomSelectOption--hierarchy{--vkui_internal--custom_select_option_hierarchy_level:0;padding-left:calc(0 * 32px);padding-left:calc(var(--vkui_internal--custom_select_option_hierarchy_level) * var(--vkui--size_option_hierarchy--regular))}.vkuiCustomSelectOption--sizeY-regular{min-height:44px}@media (max-width:767.9px) and (min-height:415px),(pointer:coarse) and (min-height:415px),(pointer:none) and (min-height:415px){.vkuiCustomSelectOption--sizeY-none{min-height:44px}}.vkuiCustomSelectOption--disabled{cursor:default;opacity:.64;opacity:var(--vkui--opacity_disable_accessibility)}.vkuiCustomSelectOption--hover{background-color:rgba(0,16,61,.04);background-color:var(--vkui--color_transparent--hover)}.vkuiCustomSelectOption__before{flex-shrink:0;margin-right:7px}.vkuiCustomSelectOption__main{flex-grow:1;max-width:100%;min-width:0}.vkuiCustomSelectOption__children{min-width:0}.vkuiCustomSelectOption__after{align-items:center;display:flex;flex-shrink:0;margin-left:8px}.vkuiCustomSelectOption__description{color:#818c99;color:var(--vkui--color_text_secondary)}.vkuiCustomSelectOption__selectedIcon{color:#2688eb;color:var(--vkui--color_icon_accent)}.vkuiCustomSelectOption__selectedIcon:not(:first-child){margin-left:8px}
126
126
  .vkuiSelect{box-sizing:border-box;cursor:pointer;font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_family_base);position:relative}.vkuiSelect__el{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;display:block;font-family:inherit;font-size:15px;font-size:var(--vkui--font_paragraph--font_size--regular);height:100%;left:0;opacity:0;position:absolute;top:0;width:100%;z-index:6;z-index:var(--vkui_internal--z_index_form_field_side)}.vkuiSelect__container{box-sizing:border-box;color:#000;color:var(--vkui--color_text_primary);flex-grow:1;flex-shrink:1;overflow:hidden;padding-left:12px;padding-right:0;position:relative;z-index:1;z-index:var(--vkui_internal--z_index_form_field_element)}.vkuiSelect--hasBefore .vkuiSelect__container{padding-left:0}.vkuiSelect--multiline .vkuiSelect__container{padding-bottom:12px;padding-top:12px}.vkuiSelect--sizeY-compact.vkuiSelect--multiline .vkuiSelect__container{padding-bottom:8px;padding-top:8px}@media (max-height:414.9px),(pointer:fine) and (min-width:768px){.vkuiSelect--sizeY-none.vkuiSelect--multiline .vkuiSelect__container{padding-bottom:8px;padding-top:8px}}.vkuiSelect__title{display:block}.vkuiSelect:not(.vkuiSelect--multiline) .vkuiSelect__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vkuiSelect--empty .vkuiSelect__title{color:#818c99;color:var(--vkui--color_text_secondary)}.vkuiSelect--align-right .vkuiSelect__title{text-align:right}.vkuiSelect--align-center .vkuiSelect__title{text-align:center}.vkuiInternalCalendarHeader__picker .vkuiSelect__container{padding-right:4px}
127
127
  .vkuiCustomSelectDropdown{background-color:#fff;background-color:var(--vkui--color_background_modal);border:var(--vkui--size_border--regular) solid var(--vkui--color_field_border_alpha);border-radius:8px;box-shadow:0 0 2px rgba(0,0,0,.03),0 2px 2px rgba(0,0,0,.06);box-shadow:var(--vkui--elevation1);box-sizing:border-box;overflow:hidden}.vkuiCustomSelectDropdown--wide{width:100%}.vkuiCustomSelectDropdown--bottom{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.vkuiCustomSelectDropdown--top{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;bottom:100%;box-shadow:0 0 2px rgba(0,0,0,.03),0 -2px 2px rgba(0,0,0,.06);box-shadow:var(--vkui--elevation1_invert_y)}.vkuiCustomSelectDropdown__fetching{padding:12px 0}.vkuiCustomSelectDropdown__in{max-height:160px}.vkuiInternalCalendarHeader__pickers .vkuiCustomSelectDropdown__in{max-height:184px}
128
128
  .vkuiCustomScrollView{height:100%;overflow:hidden;position:relative;width:100%}.vkuiCustomScrollView__box{height:100%;max-height:inherit;overflow-x:hidden;overflow-y:scroll;padding-right:100px;position:relative;scrollbar-width:none;width:100%}.vkuiCustomScrollView__box::-webkit-scrollbar{display:none}.vkuiCustomScrollView__barY:active+.vkuiCustomScrollView__box{pointer-events:none}.vkuiCustomScrollView__barY{height:100%;position:absolute;right:0;top:0;width:10px}.vkuiCustomScrollView__trackerY{box-sizing:border-box;left:0;padding:4px 4px 4px 0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:10px}.vkuiCustomScrollView__trackerY--hidden{opacity:0;transition:opacity .2s}.vkuiCustomScrollView__trackerY:before{background-color:#818c99;background-color:var(--vkui--color_icon_medium);border-radius:12px;content:"";display:block;height:100%;opacity:.48;transition:transform .2s,opacity .2s;width:100%}.vkuiCustomScrollView__trackerY:active:before,.vkuiCustomScrollView__trackerY:hover:before{opacity:.8;transform:scaleX(1.3333)}.vkuiInternalCustomSelectDropdown .vkuiCustomScrollView__box{padding-right:8px}.vkuiInternalCustomSelectDropdown--wide .vkuiCustomScrollView__box{padding-right:0}