@hh.ru/magritte-ui-bottom-sheet 4.1.35 → 4.1.37

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.
package/BottomSheet.js CHANGED
@@ -6,6 +6,7 @@ import { Transition } from 'react-transition-group';
6
6
  import classnames from 'classnames';
7
7
  import { disableOverscroll, disableScroll } from '@hh.ru/magritte-common-modal-helper';
8
8
  import { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';
9
+ import { useNoBubbling } from '@hh.ru/magritte-common-use-no-bubbling';
9
10
  import { useSwipe } from '@hh.ru/magritte-common-use-swipe';
10
11
  import { InternalLayerName } from '@hh.ru/magritte-internal-layer-name';
11
12
  import { BottomSheetContext } from './BottomSheetContext.js';
@@ -14,7 +15,7 @@ import { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';
14
15
  import { Divider } from '@hh.ru/magritte-ui-divider';
15
16
  import { Layer } from '@hh.ru/magritte-ui-layer';
16
17
  import { NavigationBarContext } from '@hh.ru/magritte-ui-navigation-bar';
17
- import { s as styles } from './bottom-sheet-0_1ZAsvk.js';
18
+ import { s as styles } from './bottom-sheet-tVHu4rnM.js';
18
19
 
19
20
  const CSS_VAR_CONTENT_OVERLAY_TOP = '--content-overlay-top';
20
21
  const CSS_VAR_CONTENT_OVERLAY_HEIGHT = '--content-overlay-height';
@@ -506,10 +507,11 @@ const BottomSheetRenderFunc = ({ allowScrollWhileFocused, children, footer, head
506
507
  console.error('onClose did not set visible=false', Date.now());
507
508
  }
508
509
  const contextValue = useMemo(() => ({ contentOverlayRef }), [contentOverlayRef]);
510
+ const eventHandlers = useNoBubbling();
509
511
  if (!animationTimeout) {
510
512
  return null;
511
513
  }
512
- const renderFunc = (appearTransition, heightTransition) => (jsx(Layer, { layer: InternalLayerName.BottomSheet, children: jsxs("div", { className: classnames(styles.overlay, {
514
+ const renderFunc = (appearTransition, heightTransition) => (jsx(Layer, { layer: InternalLayerName.BottomSheet, children: jsxs("div", { ...eventHandlers, className: classnames(styles.overlay, {
513
515
  [styles.overlayInvisible]: !showOverlay || (showOverlay && appearTransition !== 'exiting' && !currentVisible),
514
516
  }), "data-qa": "bottom-sheet-overlay", children: [jsx("div", { className: classnames(styles.overlayBackground, {
515
517
  [styles.appearAnimation]: appearTransition === 'entering',
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheet.js","sources":["../src/BottomSheet.tsx"],"sourcesContent":["import {\n FocusEventHandler,\n ForwardRefRenderFunction,\n RefObject,\n TouchEventHandler,\n forwardRef,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { Transition, TransitionStatus } from 'react-transition-group';\nimport classnames from 'classnames';\n\nimport { disableOverscroll, disableScroll } from '@hh.ru/magritte-common-modal-helper';\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport { useSwipe, SwipeEventHandler } from '@hh.ru/magritte-common-use-swipe';\nimport { InternalLayerName } from '@hh.ru/magritte-internal-layer-name';\nimport { BottomSheetContext } from '@hh.ru/magritte-ui-bottom-sheet/BottomSheetContext';\nimport { ClickInterceptor } from '@hh.ru/magritte-ui-bottom-sheet/ClickInterceptor';\nimport { BottomSheetProps } from '@hh.ru/magritte-ui-bottom-sheet/types';\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\nimport { Divider } from '@hh.ru/magritte-ui-divider';\nimport { Layer } from '@hh.ru/magritte-ui-layer';\nimport { NavigationBarContext, type NavigationBarContextProps } from '@hh.ru/magritte-ui-navigation-bar';\n\nimport styles from './bottom-sheet.less';\n\nconst CSS_VAR_CONTENT_OVERLAY_TOP = '--content-overlay-top';\nconst CSS_VAR_CONTENT_OVERLAY_HEIGHT = '--content-overlay-height';\nconst CSS_VAR_INITIAL_VIEWPORT_HEIGHT = '--initial-viewport-height';\nconst CSS_VAR_ENTER_ANIMATION_DURATION = '--enter-animation-duration';\nconst CSS_VAR_EXIT_ANIMATION_DURATION = '--exit-animation-duration';\nconst CSS_VAR_HEIGHT_ANIMATION_DURATION = '--height-transition-duration';\nconst CSS_VAR_OVERLAY_OPACITY = '--overlay-opacity';\nconst CSS_VAR_VIRTUAL_KEYBOARD_TOP_OFFSET = '--virtual-keyboard-top-offset';\nconst CSS_VAR_VIRTUAL_KEYBOARD_BOTTOM_OFFSET = '--virtual-keyboard-bottom-offset';\n\nconst INITIAL_VIEWPORT_HEIGHT = (typeof window !== 'undefined' ? window.visualViewport?.height : null) ?? 0;\nconst NAVIGATION_BAR_SIZE_OVERRIDE: NavigationBarContextProps = { size: 'standard' };\nconst SWIPE_THRESHOLD_REF = { current: { max: Math.round(INITIAL_VIEWPORT_HEIGHT * 0.8) } };\n\nconst forceRepaint = (node: HTMLElement) => node.scrollTop;\n\nconst isSafari = typeof navigator !== 'undefined' && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nconst toNumber = (value: string) => {\n const result = parseInt(value, 10);\n return Number.isInteger(result) ? result : 0;\n};\n\ntype AnimationTimeout = { [AnimationType in 'appear' | 'height']: { [AnimationStage in 'enter' | 'exit']: number } };\n\ntype LayoutMetrics = {\n documentHeight: number;\n fillHeight: number;\n grabberSpacing: number;\n viewportShift: number;\n};\n\ntype BottomSheetState = {\n grabber: 'sticky' | 'sticky-inside' | 'fake-sticky' | 'fixed';\n hasFocus: boolean;\n isSwipeEnabled: boolean;\n isSwipeInProgress: boolean;\n swipeOffset: number;\n resizeRAFHandle: ReturnType<typeof requestAnimationFrame> | null;\n virtualKeyboardHeight: number;\n};\n\nconst changeSwipeProgressState = (\n state: RefObject<BottomSheetState>,\n scrollContainerRef: RefObject<HTMLDivElement | null>,\n isSwipeInProgress: boolean,\n allowScrollWhileFocused: boolean\n) => {\n if (!state.current) {\n return;\n }\n state.current.isSwipeInProgress = isSwipeInProgress;\n if (!scrollContainerRef.current) {\n return;\n }\n\n scrollContainerRef.current.classList.toggle(\n styles.scrollContainerNoScroll,\n isSwipeInProgress || (!allowScrollWhileFocused && state.current.hasFocus)\n );\n};\n\nconst BottomSheetRenderFunc: ForwardRefRenderFunction<HTMLElement, BottomSheetProps> = (\n {\n allowScrollWhileFocused,\n children,\n footer,\n header,\n height = 'content',\n interceptClickHandlers = true,\n keyboardOverlaysContent = true,\n onAppear,\n onBeforeExit,\n onAfterExit,\n onClose,\n showDivider = 'always-if-has-scroll',\n showOverlay = true,\n visible = false,\n withContentPaddings = true,\n },\n ref\n) => {\n const contentRef = useRef<HTMLDivElement | null>(null);\n const contentOverlayRef = useRef<HTMLDivElement | null>(null);\n const cssVariablesContainerRef = useRef<HTMLDivElement | null>(null);\n const fixedGrabberRef = useRef<HTMLDivElement | null>(null);\n const footerRef = useRef<HTMLDivElement | null>(null);\n const headerRef = useRef<HTMLDivElement | null>(null);\n const heightTransitionElementRef = useRef<HTMLDivElement | null>(null);\n const scrollContainerRef = useRef<HTMLDivElement | null>(null);\n const stickyGrabberRef = useRef<HTMLDivElement | null>(null);\n const scrollContainerRefMulti = useMultipleRefs(scrollContainerRef, ref);\n const { isMobile } = useBreakpoint();\n const currentVisible = isMobile && visible;\n\n const layoutMetricsRef = useRef<LayoutMetrics>({\n documentHeight: 0,\n fillHeight: 0,\n grabberSpacing: 0,\n viewportShift: 0,\n });\n\n const prevPropsRef = useRef<{\n children: typeof children;\n height: typeof height;\n visible: typeof visible;\n }>({ children, height, visible });\n\n const stateRef = useRef<BottomSheetState>({\n grabber: 'sticky',\n hasFocus: false,\n isSwipeEnabled: false,\n isSwipeInProgress: false,\n swipeOffset: 0,\n resizeRAFHandle: null,\n virtualKeyboardHeight: 0,\n });\n\n const [animationTimeout, setAnimationTimeout] = useState<AnimationTimeout | null>(null);\n const [heightDiff, setHeightDiff] = useState<number | null>(null);\n const [isDividerVisible, setDividerVisible] = useState(false);\n const [onCloseContractCheck, setOnCloseContractCheck] = useState(false);\n\n const setCSSVariable = (name: string, value: string) =>\n cssVariablesContainerRef.current !== null && cssVariablesContainerRef.current.style.setProperty(name, value);\n\n useEffect(() => {\n if (!currentVisible) {\n return void 0;\n }\n\n layoutMetricsRef.current.documentHeight = document.documentElement.clientHeight;\n\n if (!showOverlay) {\n const enableOverscroll = disableOverscroll();\n return enableOverscroll;\n }\n\n const enableScroll = disableScroll();\n return enableScroll;\n }, [showOverlay, currentVisible]);\n\n useEffect(() => {\n const animationTimeoutElement = document.createElement('div');\n animationTimeoutElement.classList.add(styles.animationTimeout);\n document.body.appendChild(animationTimeoutElement);\n const style = window.getComputedStyle(animationTimeoutElement);\n const enter = toNumber(style.getPropertyValue(CSS_VAR_ENTER_ANIMATION_DURATION));\n const exit = toNumber(style.getPropertyValue(CSS_VAR_EXIT_ANIMATION_DURATION));\n const height = toNumber(style.getPropertyValue(CSS_VAR_HEIGHT_ANIMATION_DURATION));\n document.body.removeChild(animationTimeoutElement);\n setAnimationTimeout({ appear: { enter, exit }, height: { enter: height, exit } });\n }, [setAnimationTimeout]);\n\n // Пересчитывает флаги отображения граббера и дивайдера в зависимости от скролла\n const recalcScrollFlags = useCallback(() => {\n // расчет состояния граббера в зависимости от того, проскроллен ли контент до верхней границы вьюпорта\n requestAnimationFrame(() => {\n if (fixedGrabberRef.current !== null && stickyGrabberRef.current !== null) {\n const stickyGrabberDOMRect = stickyGrabberRef.current.getBoundingClientRect();\n const grabberTop = Math.round(stickyGrabberDOMRect.top);\n\n if (grabberTop >= layoutMetricsRef.current.grabberSpacing * 2 || heightDiff !== null) {\n if (stateRef.current.grabber !== 'sticky') {\n stateRef.current.grabber = 'sticky';\n stickyGrabberRef.current.classList.remove(styles.grabberInvisible);\n fixedGrabberRef.current.classList.add(styles.grabberInvisible);\n fixedGrabberRef.current.classList.remove(styles.grabberFixed, styles.grabberFakeSticky);\n fixedGrabberRef.current.style.top = ``;\n }\n } else if (grabberTop > layoutMetricsRef.current.grabberSpacing) {\n if (stateRef.current.grabber !== 'fake-sticky') {\n stateRef.current.grabber = 'fake-sticky';\n stickyGrabberRef.current.classList.add(styles.grabberInvisible);\n fixedGrabberRef.current.classList.add(styles.grabberFakeSticky);\n fixedGrabberRef.current.classList.remove(styles.grabberSticky, styles.grabberInvisible);\n }\n fixedGrabberRef.current.style.top = `${grabberTop + layoutMetricsRef.current.viewportShift}px`;\n } else if (stateRef.current.grabber !== 'fixed') {\n stateRef.current.grabber = 'fixed';\n stickyGrabberRef.current.classList.add(styles.grabberInvisible);\n fixedGrabberRef.current.classList.add(styles.grabberFixed);\n fixedGrabberRef.current.classList.remove(styles.grabberFakeSticky, styles.grabberInvisible);\n fixedGrabberRef.current.style.top = ``;\n }\n }\n });\n\n // расчет того, нужно ли показывать дивайдер, в зависимости от того, проскроллен ли контент до конца\n if (contentRef.current !== null && scrollContainerRef.current !== null) {\n if (footer && (showDivider === 'always-if-has-scroll' || showDivider === 'if-not-scrolled-to-end')) {\n const hasScroll = contentRef.current.clientHeight > scrollContainerRef.current.clientHeight + 1;\n const isScrolledToContentEnd =\n Math.round(scrollContainerRef.current.scrollTop + scrollContainerRef.current.clientHeight) ===\n scrollContainerRef.current.scrollHeight;\n setDividerVisible(\n (showDivider === 'always-if-has-scroll' && hasScroll) ||\n (showDivider === 'if-not-scrolled-to-end' && hasScroll && !isScrolledToContentEnd)\n );\n }\n }\n }, [footer, heightDiff, setDividerVisible, showDivider]);\n\n const resetScrollFlags = useCallback(() => {\n if (fixedGrabberRef.current !== null && stickyGrabberRef.current !== null) {\n stateRef.current.grabber = 'sticky';\n\n fixedGrabberRef.current.classList.add(styles.grabberInvisible);\n fixedGrabberRef.current.classList.remove(styles.grabberTransitionAnimation);\n\n stickyGrabberRef.current.classList.remove(styles.grabberInvisible);\n }\n\n setDividerVisible(false);\n }, [setDividerVisible]);\n\n const resetHeightDiff = useCallback(() => setHeightDiff(null), [setHeightDiff]);\n\n useEffect(() => {\n const meta = document.querySelector('meta[name=\"viewport\"]') ?? document.createElement('meta');\n const attributesStr = meta.getAttribute('content');\n const attributes = (\n attributesStr !== null\n ? Object.fromEntries(attributesStr.split(',').map((keyValuePairStr) => keyValuePairStr.split('=')))\n : {}\n ) as Record<string, string>;\n attributes['interactive-widget'] = keyboardOverlaysContent ? 'resizes-visual' : 'resizes-content';\n const attributesStrUpdated = Object.entries(attributes)\n .map((keyValuePair) => keyValuePair.join('='))\n .join(',');\n meta.setAttribute('name', 'viewport');\n meta.setAttribute('content', attributesStrUpdated);\n }, [keyboardOverlaysContent]);\n\n const recalcKeyboardOffsets = useCallback(() => {\n if (!headerRef.current || !scrollContainerRef.current || !visualViewport) {\n return;\n }\n\n if (stateRef.current.hasFocus) {\n // терминология: https://developer.chrome.com/blog/viewport-resize-behavior/\n //\n // делим браузеры на три группы в зависимости от поведения при открытии виртуальной клавиатуры:\n // 1. Safari — ресайзит Visual Viewport, не меняет Layout Viewport.\n // В нем не нужно ничего корректировать при keyboardOverlaysContent=true,\n // а при keyboardOverlaysContent=false нужно сдвинуть НИЖНИЙ край контейнера ВВЕРХ,\n // чтобы он совпал с границей Visual Viewport\n // 2. Chrome < 108 & Chromium-based — ресайзит и Visual Viewport, и Layout Viewport\n // В нем не нужно ничего корректировать при keyboardOverlaysContent=false,\n // а при keyboardOverlaysContent=true нужно сдвинуть НИЖНИЙ край контейнера ВНИЗ,\n // чтобы футер уехал под клавиатуру\n // 3. Chrome >= 108 — поддерживает Virtual Keyboard API и meta-тег interactive-widget\n // Используем поведение `resizes-visual` (как в Safari) в случае keyboardOverlaysContent=true\n // и `resizes-content` (как в Chrome < 108 & Chromium-based) в случае keyboardOverlaysContent=false\n // Таким образом в нем ничего не нужно корректировать.\n\n const scrollContainerDOMREct = scrollContainerRef.current.getBoundingClientRect();\n\n // любой браузер может сдвинуть Visual Viewport вверх, если фокусируемый инпут находится близко к нижней границе\n // из-за этого может возникнуть проблема, что ВЕРХНИЙ край контента уехал за границу Visual Viewport\n // сдвигаем ВЕРХНИЙ край контейнера ВНИЗ, чтобы он совпал с границей Visual Viewport\n const visualViewportShift = Math.round(\n layoutMetricsRef.current.grabberSpacing - scrollContainerDOMREct.top\n );\n\n // запоминаем сдвиг для коррекции позиции граббера\n layoutMetricsRef.current.viewportShift = visualViewportShift;\n\n // клавиатура ПОВЕРХ контента\n // этот кейс нужно корректировать только в Chrome < 108 & Chromium-based\n if (keyboardOverlaysContent) {\n // браузеры из этой группы меняют Layout Viewport\n const layoutViewportDiff = Math.round(\n layoutMetricsRef.current.documentHeight - document.documentElement.clientHeight\n );\n if (layoutViewportDiff > 0) {\n setCSSVariable(CSS_VAR_VIRTUAL_KEYBOARD_TOP_OFFSET, `${visualViewportShift}px`);\n // сдвигаем НИЖНИЙ край контейнера ВНИЗ, чтобы футер уехал под клавиатуру\n setCSSVariable(CSS_VAR_VIRTUAL_KEYBOARD_BOTTOM_OFFSET, `${-layoutViewportDiff}px`);\n\n // при этом может возникнуть проблема, что клавиатура перекрыла хедер\n // проверяем это и компенсируем величину перекрытия при необходимости\n const headerDOMRect = headerRef.current.getBoundingClientRect();\n const headerOutOfViewportHeight = Math.round(\n headerDOMRect.bottom + layoutViewportDiff - layoutMetricsRef.current.documentHeight\n );\n if (headerOutOfViewportHeight > 0) {\n setCSSVariable(\n CSS_VAR_VIRTUAL_KEYBOARD_BOTTOM_OFFSET,\n `${headerOutOfViewportHeight - layoutViewportDiff}px`\n );\n }\n }\n } else {\n // клавиатура ПОД контентом\n // этот кейс нужно корректировать только в Safari\n\n // Safari ресайзит Visual Viewport\n const visualViewportDiff = Math.round(scrollContainerDOMREct.bottom - visualViewport.height);\n if (visualViewportDiff > 0) {\n setCSSVariable(CSS_VAR_VIRTUAL_KEYBOARD_TOP_OFFSET, `${visualViewportShift}px`);\n // сдвигаем НИЖНИЙ край контейнера ВВЕРХ, чтобы он совпал с границей Visual Viewport\n setCSSVariable(CSS_VAR_VIRTUAL_KEYBOARD_BOTTOM_OFFSET, `${visualViewportDiff}px`);\n }\n }\n } else {\n setCSSVariable(CSS_VAR_VIRTUAL_KEYBOARD_TOP_OFFSET, `0px`);\n setCSSVariable(CSS_VAR_VIRTUAL_KEYBOARD_BOTTOM_OFFSET, `0px`);\n }\n }, [keyboardOverlaysContent]);\n\n const handleFocus: FocusEventHandler = useCallback(\n (event) => {\n if (!scrollContainerRef.current) {\n return;\n }\n\n const focusedElement = event.target;\n const initialViewportHeight = visualViewport?.height;\n const resizeRAFStart = performance.now();\n\n if (!(focusedElement instanceof HTMLInputElement) || stateRef.current.resizeRAFHandle !== null) {\n return;\n }\n\n const handleResize = () => {\n if (stateRef.current.resizeRAFHandle !== null) {\n cancelAnimationFrame(stateRef.current.resizeRAFHandle);\n stateRef.current.resizeRAFHandle = null;\n }\n recalcKeyboardOffsets();\n };\n\n const waitForResize = () => {\n if (performance.now() - resizeRAFStart > 1000 || visualViewport?.height !== initialViewportHeight) {\n visualViewport?.removeEventListener('resize', handleResize);\n stateRef.current.resizeRAFHandle = null;\n recalcKeyboardOffsets();\n } else {\n stateRef.current.resizeRAFHandle = requestAnimationFrame(waitForResize);\n }\n };\n\n const handleBlur = () => {\n if (!scrollContainerRef.current) {\n return;\n }\n\n focusedElement.removeEventListener('blur', handleBlur);\n stateRef.current.hasFocus = false;\n scrollContainerRef.current.classList.remove(\n styles.scrollContainerNoScroll,\n styles.virtualKeyboardAnimation\n );\n\n if (isSafari) {\n setCSSVariable(CSS_VAR_VIRTUAL_KEYBOARD_TOP_OFFSET, `0px`);\n setCSSVariable(CSS_VAR_VIRTUAL_KEYBOARD_BOTTOM_OFFSET, `0px`);\n }\n\n if (stateRef.current.resizeRAFHandle !== null) {\n cancelAnimationFrame(stateRef.current.resizeRAFHandle);\n stateRef.current.resizeRAFHandle = null;\n }\n visualViewport?.removeEventListener('resize', handleResize);\n };\n\n focusedElement.addEventListener('blur', handleBlur);\n stateRef.current.hasFocus = true;\n if (!allowScrollWhileFocused) {\n scrollContainerRef.current.classList.add(styles.scrollContainerNoScroll);\n }\n scrollContainerRef.current.classList.add(styles.virtualKeyboardAnimation);\n\n stateRef.current.resizeRAFHandle = requestAnimationFrame(waitForResize);\n visualViewport?.addEventListener('resize', handleResize);\n },\n [allowScrollWhileFocused, recalcKeyboardOffsets]\n );\n\n // Запускает анимацию translateY для показа/скрытия боттомшита или изменения высоты контента\n const runTranslateYAnimation = useCallback(() => {\n if (\n !contentRef.current ||\n !contentOverlayRef.current ||\n !footerRef.current ||\n !heightTransitionElementRef.current ||\n !scrollContainerRef.current ||\n !visualViewport\n ) {\n return;\n }\n\n if (heightDiff !== null) {\n if (heightDiff > 0) {\n contentRef.current.style.transform = `translateY(${heightDiff}px)`;\n contentOverlayRef.current.style.transform = `translateY(${heightDiff}px)`;\n footerRef.current.style.transform = `translateY(${-heightDiff}px)`;\n } else {\n heightTransitionElementRef.current.style.flexBasis = `${-heightDiff}px`;\n }\n } else {\n const contentDOMREct = contentRef.current.getBoundingClientRect();\n const translateY =\n scrollContainerRef.current.clientHeight + stateRef.current.swipeOffset - contentDOMREct.top;\n contentRef.current.style.transform = `translateY(${translateY}px)`;\n contentOverlayRef.current.style.transform = `translateY(${translateY}px)`;\n setCSSVariable(CSS_VAR_OVERLAY_OPACITY, `0`);\n }\n\n forceRepaint(scrollContainerRef.current);\n }, [heightDiff]);\n\n const resetTranslateY = useCallback(() => {\n if (\n !contentRef.current ||\n !contentOverlayRef.current ||\n !footerRef.current ||\n !heightTransitionElementRef.current ||\n !scrollContainerRef.current\n ) {\n return;\n }\n\n if (heightDiff !== null) {\n contentRef.current.style.transform = ``;\n contentOverlayRef.current.style.transform = ``;\n footerRef.current.style.transform = ``;\n heightTransitionElementRef.current.style.flexBasis = ``;\n } else {\n contentRef.current.style.transform = `translateY(${stateRef.current.swipeOffset}px)`;\n contentOverlayRef.current.style.transform = `translateY(${stateRef.current.swipeOffset}px)`;\n setCSSVariable(CSS_VAR_OVERLAY_OPACITY, `1`);\n }\n\n forceRepaint(scrollContainerRef.current);\n }, [heightDiff]);\n\n const handleAppearAnimationEnd = useCallback(() => {\n let scrollTop = scrollContainerRef.current?.scrollTop ?? 0;\n let scrollLocked = false;\n\n // Обработчик скролла для блокировки оверскролла в браузерах без поддержки css правила overscroll-behavior\n const handleScroll = (event: Event) => {\n const currentTarget = event.currentTarget as HTMLDivElement;\n const forward = currentTarget.scrollTop > scrollTop;\n const maxScroll = currentTarget.scrollHeight - currentTarget.offsetHeight;\n\n if (!scrollLocked && forward && currentTarget.scrollTop > maxScroll) {\n currentTarget.style.overflow = 'hidden';\n currentTarget.scrollTop = maxScroll;\n scrollLocked = true;\n scrollTop = maxScroll;\n setTimeout(() => {\n currentTarget.style.overflow = 'auto';\n scrollLocked = false;\n }, 1);\n event.preventDefault();\n return;\n }\n\n scrollTop = currentTarget.scrollTop;\n };\n\n // удаления хендлеров нет т.к. установлен флаг unmountOnExit, т.е. элемент удаляется из DOM\n // после завершения анимации\n scrollContainerRef.current?.addEventListener('touchmove', handleScroll, { passive: false });\n scrollContainerRef.current?.addEventListener('scroll', handleScroll, { passive: false });\n\n recalcScrollFlags();\n onAppear?.();\n }, [onAppear, recalcScrollFlags]);\n\n const handleExitAnimationStart = useCallback(() => {\n resetTranslateY();\n onBeforeExit?.();\n }, [resetTranslateY, onBeforeExit]);\n\n const handleExitAnimationEnd = useCallback(() => {\n stateRef.current.grabber = 'sticky';\n stateRef.current.hasFocus = false;\n stateRef.current.isSwipeEnabled = false;\n changeSwipeProgressState(stateRef, scrollContainerRef, false, !!allowScrollWhileFocused);\n stateRef.current.swipeOffset = 0;\n stateRef.current.resizeRAFHandle !== null && cancelAnimationFrame(stateRef.current.resizeRAFHandle);\n stateRef.current.resizeRAFHandle = null;\n\n layoutMetricsRef.current.fillHeight = 0;\n layoutMetricsRef.current.grabberSpacing = 0;\n\n setCSSVariable(CSS_VAR_OVERLAY_OPACITY, `1`);\n setCSSVariable(CSS_VAR_VIRTUAL_KEYBOARD_TOP_OFFSET, `0px`);\n setCSSVariable(CSS_VAR_VIRTUAL_KEYBOARD_BOTTOM_OFFSET, `0px`);\n\n if (fixedGrabberRef.current !== null) {\n fixedGrabberRef.current.classList.add(styles.grabberInvisible);\n fixedGrabberRef.current.classList.remove(styles.grabberFixed, styles.grabberFakeSticky);\n fixedGrabberRef.current.style.transform = ``;\n }\n\n if (scrollContainerRef.current !== null) {\n scrollContainerRef.current.classList.remove(\n styles.scrollContainerNoScroll,\n styles.virtualKeyboardAnimation\n );\n }\n\n resetScrollFlags();\n setOnCloseContractCheck(false);\n onAfterExit?.();\n }, [resetScrollFlags, setOnCloseContractCheck, onAfterExit, allowScrollWhileFocused]);\n\n const handleClose = useCallback(() => {\n onClose();\n setOnCloseContractCheck(true);\n }, [onClose, setOnCloseContractCheck]);\n\n const handleSwipeStart: SwipeEventHandler = useCallback(() => {\n if (!scrollContainerRef.current) {\n return;\n }\n\n if (Object.is(Math.round(scrollContainerRef.current.scrollTop), 0)) {\n stateRef.current.isSwipeEnabled = true;\n stateRef.current.swipeOffset = 0;\n }\n }, []);\n\n const handleSwipeMove: SwipeEventHandler = useCallback(\n (event) => {\n if (\n !contentRef.current ||\n !contentOverlayRef.current ||\n !stateRef.current.isSwipeEnabled ||\n !scrollContainerRef.current\n ) {\n return;\n }\n\n const selection = document.getSelection();\n if (selection && !selection.isCollapsed) {\n return;\n }\n\n if (event.distanceY > 0) {\n contentRef.current.style.transform = `translateY(${event.distanceY}px)`;\n contentOverlayRef.current.style.transform = `translateY(${event.distanceY}px)`;\n if (!stateRef.current.isSwipeInProgress) {\n changeSwipeProgressState(stateRef, scrollContainerRef, true, !!allowScrollWhileFocused);\n }\n recalcScrollFlags();\n } else {\n contentRef.current.style.transform = ``;\n contentOverlayRef.current.style.transform = ``;\n stateRef.current.isSwipeEnabled = false;\n changeSwipeProgressState(stateRef, scrollContainerRef, false, !!allowScrollWhileFocused);\n }\n\n stateRef.current.swipeOffset = event.distanceY;\n },\n [recalcScrollFlags, allowScrollWhileFocused]\n );\n\n const handleSwipeCancel: SwipeEventHandler = useCallback(() => {\n if (!contentRef.current || !contentOverlayRef.current || !scrollContainerRef.current) {\n return;\n }\n\n if (stateRef.current.isSwipeEnabled && stateRef.current.isSwipeInProgress) {\n contentRef.current.style.transform = ``;\n contentOverlayRef.current.style.transform = ``;\n }\n\n stateRef.current.isSwipeEnabled = false;\n changeSwipeProgressState(stateRef, scrollContainerRef, false, !!allowScrollWhileFocused);\n stateRef.current.swipeOffset = 0;\n\n recalcScrollFlags();\n }, [recalcScrollFlags, allowScrollWhileFocused]);\n\n const handleSwipeEnd: SwipeEventHandler = useCallback(\n (event) => {\n if (stateRef.current.isSwipeEnabled && stateRef.current.isSwipeInProgress) {\n handleClose();\n } else {\n handleSwipeCancel(event);\n }\n },\n [handleClose, handleSwipeCancel]\n );\n\n const { onTouchStart, onTouchMove, onTouchEnd, onTouchCancel } = useSwipe({\n thresholdYRef: SWIPE_THRESHOLD_REF,\n onSwipeStart: handleSwipeStart,\n onSwipeMove: handleSwipeMove,\n onSwipeEnd: handleSwipeEnd,\n onSwipeCancel: handleSwipeCancel,\n });\n\n const swipeHandlers = useMemo<\n Record<'onTouchStart' | 'onTouchMove' | 'onTouchEnd' | 'onTouchCancel', TouchEventHandler<HTMLElement>>\n >(() => {\n const withStopPropagation =\n (callback?: TouchEventHandler): TouchEventHandler =>\n (event) => {\n event.stopPropagation();\n callback?.(event);\n };\n return {\n onTouchStart: withStopPropagation(onTouchStart),\n onTouchMove: withStopPropagation(onTouchMove),\n onTouchEnd,\n onTouchCancel,\n };\n }, [onTouchStart, onTouchMove, onTouchEnd, onTouchCancel]);\n\n useLayoutEffect(() => {\n if (\n !contentRef.current ||\n !footerRef.current ||\n !headerRef.current ||\n !scrollContainerRef.current ||\n !visualViewport\n ) {\n return;\n }\n\n if (visible) {\n stateRef.current.grabber = contentRef.current.offsetTop > 0 ? 'sticky' : 'sticky-inside';\n if (visible !== prevPropsRef.current.visible) {\n layoutMetricsRef.current.fillHeight = contentRef.current.offsetTop;\n layoutMetricsRef.current.grabberSpacing = scrollContainerRef.current.offsetTop;\n\n setCSSVariable(\n CSS_VAR_CONTENT_OVERLAY_TOP,\n `${contentRef.current.offsetTop + headerRef.current.clientHeight}px`\n );\n setCSSVariable(\n CSS_VAR_CONTENT_OVERLAY_HEIGHT,\n `${footerRef.current.offsetTop - headerRef.current.clientHeight}px`\n );\n setCSSVariable(CSS_VAR_INITIAL_VIEWPORT_HEIGHT, `${INITIAL_VIEWPORT_HEIGHT}px`);\n } else if (children !== prevPropsRef.current.children || height !== prevPropsRef.current.height) {\n const scrollTop = scrollContainerRef.current.scrollTop;\n scrollContainerRef.current.scrollTo({ top: 0 });\n\n const _heightDiff = layoutMetricsRef.current.fillHeight - contentRef.current.offsetTop;\n layoutMetricsRef.current.fillHeight = contentRef.current.offsetTop;\n if (_heightDiff !== 0 && !stateRef.current.hasFocus) {\n setHeightDiff(_heightDiff);\n }\n\n scrollContainerRef.current.scrollTo({ top: scrollTop });\n }\n }\n\n prevPropsRef.current = { ...prevPropsRef.current, children, height, visible };\n }, [children, height, setHeightDiff, visible]);\n\n if (onCloseContractCheck && visible) {\n console.error('onClose did not set visible=false', Date.now());\n }\n\n const contextValue = useMemo(() => ({ contentOverlayRef }), [contentOverlayRef]);\n\n if (!animationTimeout) {\n return null;\n }\n\n const renderFunc = (appearTransition: TransitionStatus, heightTransition: TransitionStatus) => (\n <Layer layer={InternalLayerName.BottomSheet}>\n <div\n className={classnames(styles.overlay, {\n [styles.overlayInvisible]:\n !showOverlay || (showOverlay && appearTransition !== 'exiting' && !currentVisible),\n })}\n data-qa=\"bottom-sheet-overlay\"\n >\n <div\n className={classnames(styles.overlayBackground, {\n [styles.appearAnimation]: appearTransition === 'entering',\n [styles.disappearAnimation]: appearTransition === 'exiting',\n })}\n />\n <div\n className={classnames(styles.grabber, styles.grabberTransitionAnimation, {\n [styles.grabberInvisible]: appearTransition !== 'entered' || heightTransition !== 'exited',\n [styles.grabberFixed]:\n stateRef.current.grabber === 'fixed' || stateRef.current.grabber === 'sticky-inside',\n [styles.grabberFakeSticky]: stateRef.current.grabber === 'fake-sticky',\n })}\n ref={fixedGrabberRef}\n />\n <div\n className={classnames(styles.scrollContainer, {\n [styles.scrollContainerNoScroll]: !allowScrollWhileFocused && stateRef.current.hasFocus,\n [styles.virtualKeyboardAnimation]: stateRef.current.hasFocus,\n })}\n data-qa=\"bottom-sheet-container\"\n onScroll={recalcScrollFlags}\n ref={scrollContainerRefMulti}\n >\n <div\n className={classnames(styles.fill, {\n [styles.fillFullScreen]: height === 'full-screen',\n [styles.fillHalfScreen]: height === 'half-screen',\n })}\n data-qa=\"bottom-sheet-fill\"\n onClick={handleClose}\n />\n <div\n className={classnames(styles.content, {\n [styles.appearAnimation]: appearTransition === 'entering',\n [styles.closeBySwipeAnimation]:\n appearTransition === 'exiting' && stateRef.current.isSwipeInProgress,\n [styles.contentFullScreen]: height === 'full-screen',\n [styles.disappearAnimation]: appearTransition === 'exiting',\n [styles.heightTransitionAnimation]: heightTransition === 'entering',\n })}\n data-qa=\"bottom-sheet-content\"\n ref={contentRef}\n {...swipeHandlers}\n >\n <div\n className={classnames(styles.grabber, styles.grabberSticky, {\n [styles.grabberStickyInside]:\n appearTransition === 'entering' && stateRef.current.grabber === 'sticky-inside',\n })}\n ref={stickyGrabberRef}\n />\n <div className={styles.visualContainer}>\n <div className={styles.header} onFocus={handleFocus} ref={headerRef}>\n <NavigationBarContext.Provider value={NAVIGATION_BAR_SIZE_OVERRIDE}>\n {header}\n </NavigationBarContext.Provider>\n </div>\n <div\n className={classnames(styles.main, {\n [styles.mainWithPaddings]: withContentPaddings,\n [styles.mainWithoutHeader]: !header,\n })}\n >\n <BottomSheetContext.Provider value={contextValue}>\n {children}\n </BottomSheetContext.Provider>\n </div>\n <div\n className={classnames(styles.heightTransitionElement, {\n [styles.heightTransitionAnimation]: heightTransition === 'entering',\n })}\n ref={heightTransitionElementRef}\n />\n <div\n className={classnames(styles.footer, {\n [styles.heightTransitionAnimation]: heightTransition === 'entering',\n })}\n ref={footerRef}\n >\n {isDividerVisible && <Divider />}\n {interceptClickHandlers ? <ClickInterceptor>{footer}</ClickInterceptor> : footer}\n </div>\n </div>\n </div>\n </div>\n <div className={styles.contentOverlay} ref={contentOverlayRef} />\n </div>\n </Layer>\n );\n\n return createPortal(\n <div\n className={styles.cssVariablesContainer}\n data-qa=\"bottom-sheet-css-variables\"\n ref={cssVariablesContainerRef}\n >\n <Transition\n appear\n in={currentVisible}\n mountOnEnter\n onEnter={runTranslateYAnimation}\n onEntering={resetTranslateY}\n onEntered={handleAppearAnimationEnd}\n onExit={handleExitAnimationStart}\n onExiting={runTranslateYAnimation}\n onExited={handleExitAnimationEnd}\n timeout={animationTimeout.appear}\n unmountOnExit\n nodeRef={contentRef}\n >\n {(appearTransition) => (\n <Transition\n in={heightDiff !== null}\n onEnter={runTranslateYAnimation}\n onEntering={resetTranslateY}\n onEntered={resetHeightDiff}\n onExited={recalcScrollFlags}\n timeout={animationTimeout.height}\n nodeRef={contentRef}\n >\n {(heightTransition) => renderFunc(appearTransition, heightTransition)}\n </Transition>\n )}\n </Transition>\n </div>,\n document.body\n );\n};\n\nexport const BottomSheet = forwardRef(BottomSheetRenderFunc);\n\nBottomSheet.displayName = 'BottomSheet';\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"BottomSheet.js","sources":["../src/BottomSheet.tsx"],"sourcesContent":["import {\n FocusEventHandler,\n ForwardRefRenderFunction,\n RefObject,\n TouchEventHandler,\n forwardRef,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { Transition, TransitionStatus } from 'react-transition-group';\nimport classnames from 'classnames';\n\nimport { disableOverscroll, disableScroll } from '@hh.ru/magritte-common-modal-helper';\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport { useNoBubbling } from '@hh.ru/magritte-common-use-no-bubbling';\nimport { useSwipe, SwipeEventHandler } from '@hh.ru/magritte-common-use-swipe';\nimport { InternalLayerName } from '@hh.ru/magritte-internal-layer-name';\nimport { BottomSheetContext } from '@hh.ru/magritte-ui-bottom-sheet/BottomSheetContext';\nimport { ClickInterceptor } from '@hh.ru/magritte-ui-bottom-sheet/ClickInterceptor';\nimport { BottomSheetProps } from '@hh.ru/magritte-ui-bottom-sheet/types';\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\nimport { Divider } from '@hh.ru/magritte-ui-divider';\nimport { Layer } from '@hh.ru/magritte-ui-layer';\nimport { NavigationBarContext, type NavigationBarContextProps } from '@hh.ru/magritte-ui-navigation-bar';\n\nimport styles from './bottom-sheet.less';\n\nconst CSS_VAR_CONTENT_OVERLAY_TOP = '--content-overlay-top';\nconst CSS_VAR_CONTENT_OVERLAY_HEIGHT = '--content-overlay-height';\nconst CSS_VAR_INITIAL_VIEWPORT_HEIGHT = '--initial-viewport-height';\nconst CSS_VAR_ENTER_ANIMATION_DURATION = '--enter-animation-duration';\nconst CSS_VAR_EXIT_ANIMATION_DURATION = '--exit-animation-duration';\nconst CSS_VAR_HEIGHT_ANIMATION_DURATION = '--height-transition-duration';\nconst CSS_VAR_OVERLAY_OPACITY = '--overlay-opacity';\nconst CSS_VAR_VIRTUAL_KEYBOARD_TOP_OFFSET = '--virtual-keyboard-top-offset';\nconst CSS_VAR_VIRTUAL_KEYBOARD_BOTTOM_OFFSET = '--virtual-keyboard-bottom-offset';\n\nconst INITIAL_VIEWPORT_HEIGHT = (typeof window !== 'undefined' ? window.visualViewport?.height : null) ?? 0;\nconst NAVIGATION_BAR_SIZE_OVERRIDE: NavigationBarContextProps = { size: 'standard' };\nconst SWIPE_THRESHOLD_REF = { current: { max: Math.round(INITIAL_VIEWPORT_HEIGHT * 0.8) } };\n\nconst forceRepaint = (node: HTMLElement) => node.scrollTop;\n\nconst isSafari = typeof navigator !== 'undefined' && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nconst toNumber = (value: string) => {\n const result = parseInt(value, 10);\n return Number.isInteger(result) ? result : 0;\n};\n\ntype AnimationTimeout = { [AnimationType in 'appear' | 'height']: { [AnimationStage in 'enter' | 'exit']: number } };\n\ntype LayoutMetrics = {\n documentHeight: number;\n fillHeight: number;\n grabberSpacing: number;\n viewportShift: number;\n};\n\ntype BottomSheetState = {\n grabber: 'sticky' | 'sticky-inside' | 'fake-sticky' | 'fixed';\n hasFocus: boolean;\n isSwipeEnabled: boolean;\n isSwipeInProgress: boolean;\n swipeOffset: number;\n resizeRAFHandle: ReturnType<typeof requestAnimationFrame> | null;\n virtualKeyboardHeight: number;\n};\n\nconst changeSwipeProgressState = (\n state: RefObject<BottomSheetState>,\n scrollContainerRef: RefObject<HTMLDivElement | null>,\n isSwipeInProgress: boolean,\n allowScrollWhileFocused: boolean\n) => {\n if (!state.current) {\n return;\n }\n state.current.isSwipeInProgress = isSwipeInProgress;\n if (!scrollContainerRef.current) {\n return;\n }\n\n scrollContainerRef.current.classList.toggle(\n styles.scrollContainerNoScroll,\n isSwipeInProgress || (!allowScrollWhileFocused && state.current.hasFocus)\n );\n};\n\nconst BottomSheetRenderFunc: ForwardRefRenderFunction<HTMLElement, BottomSheetProps> = (\n {\n allowScrollWhileFocused,\n children,\n footer,\n header,\n height = 'content',\n interceptClickHandlers = true,\n keyboardOverlaysContent = true,\n onAppear,\n onBeforeExit,\n onAfterExit,\n onClose,\n showDivider = 'always-if-has-scroll',\n showOverlay = true,\n visible = false,\n withContentPaddings = true,\n },\n ref\n) => {\n const contentRef = useRef<HTMLDivElement | null>(null);\n const contentOverlayRef = useRef<HTMLDivElement | null>(null);\n const cssVariablesContainerRef = useRef<HTMLDivElement | null>(null);\n const fixedGrabberRef = useRef<HTMLDivElement | null>(null);\n const footerRef = useRef<HTMLDivElement | null>(null);\n const headerRef = useRef<HTMLDivElement | null>(null);\n const heightTransitionElementRef = useRef<HTMLDivElement | null>(null);\n const scrollContainerRef = useRef<HTMLDivElement | null>(null);\n const stickyGrabberRef = useRef<HTMLDivElement | null>(null);\n const scrollContainerRefMulti = useMultipleRefs(scrollContainerRef, ref);\n const { isMobile } = useBreakpoint();\n const currentVisible = isMobile && visible;\n\n const layoutMetricsRef = useRef<LayoutMetrics>({\n documentHeight: 0,\n fillHeight: 0,\n grabberSpacing: 0,\n viewportShift: 0,\n });\n\n const prevPropsRef = useRef<{\n children: typeof children;\n height: typeof height;\n visible: typeof visible;\n }>({ children, height, visible });\n\n const stateRef = useRef<BottomSheetState>({\n grabber: 'sticky',\n hasFocus: false,\n isSwipeEnabled: false,\n isSwipeInProgress: false,\n swipeOffset: 0,\n resizeRAFHandle: null,\n virtualKeyboardHeight: 0,\n });\n\n const [animationTimeout, setAnimationTimeout] = useState<AnimationTimeout | null>(null);\n const [heightDiff, setHeightDiff] = useState<number | null>(null);\n const [isDividerVisible, setDividerVisible] = useState(false);\n const [onCloseContractCheck, setOnCloseContractCheck] = useState(false);\n\n const setCSSVariable = (name: string, value: string) =>\n cssVariablesContainerRef.current !== null && cssVariablesContainerRef.current.style.setProperty(name, value);\n\n useEffect(() => {\n if (!currentVisible) {\n return void 0;\n }\n\n layoutMetricsRef.current.documentHeight = document.documentElement.clientHeight;\n\n if (!showOverlay) {\n const enableOverscroll = disableOverscroll();\n return enableOverscroll;\n }\n\n const enableScroll = disableScroll();\n return enableScroll;\n }, [showOverlay, currentVisible]);\n\n useEffect(() => {\n const animationTimeoutElement = document.createElement('div');\n animationTimeoutElement.classList.add(styles.animationTimeout);\n document.body.appendChild(animationTimeoutElement);\n const style = window.getComputedStyle(animationTimeoutElement);\n const enter = toNumber(style.getPropertyValue(CSS_VAR_ENTER_ANIMATION_DURATION));\n const exit = toNumber(style.getPropertyValue(CSS_VAR_EXIT_ANIMATION_DURATION));\n const height = toNumber(style.getPropertyValue(CSS_VAR_HEIGHT_ANIMATION_DURATION));\n document.body.removeChild(animationTimeoutElement);\n setAnimationTimeout({ appear: { enter, exit }, height: { enter: height, exit } });\n }, [setAnimationTimeout]);\n\n // Пересчитывает флаги отображения граббера и дивайдера в зависимости от скролла\n const recalcScrollFlags = useCallback(() => {\n // расчет состояния граббера в зависимости от того, проскроллен ли контент до верхней границы вьюпорта\n requestAnimationFrame(() => {\n if (fixedGrabberRef.current !== null && stickyGrabberRef.current !== null) {\n const stickyGrabberDOMRect = stickyGrabberRef.current.getBoundingClientRect();\n const grabberTop = Math.round(stickyGrabberDOMRect.top);\n\n if (grabberTop >= layoutMetricsRef.current.grabberSpacing * 2 || heightDiff !== null) {\n if (stateRef.current.grabber !== 'sticky') {\n stateRef.current.grabber = 'sticky';\n stickyGrabberRef.current.classList.remove(styles.grabberInvisible);\n fixedGrabberRef.current.classList.add(styles.grabberInvisible);\n fixedGrabberRef.current.classList.remove(styles.grabberFixed, styles.grabberFakeSticky);\n fixedGrabberRef.current.style.top = ``;\n }\n } else if (grabberTop > layoutMetricsRef.current.grabberSpacing) {\n if (stateRef.current.grabber !== 'fake-sticky') {\n stateRef.current.grabber = 'fake-sticky';\n stickyGrabberRef.current.classList.add(styles.grabberInvisible);\n fixedGrabberRef.current.classList.add(styles.grabberFakeSticky);\n fixedGrabberRef.current.classList.remove(styles.grabberSticky, styles.grabberInvisible);\n }\n fixedGrabberRef.current.style.top = `${grabberTop + layoutMetricsRef.current.viewportShift}px`;\n } else if (stateRef.current.grabber !== 'fixed') {\n stateRef.current.grabber = 'fixed';\n stickyGrabberRef.current.classList.add(styles.grabberInvisible);\n fixedGrabberRef.current.classList.add(styles.grabberFixed);\n fixedGrabberRef.current.classList.remove(styles.grabberFakeSticky, styles.grabberInvisible);\n fixedGrabberRef.current.style.top = ``;\n }\n }\n });\n\n // расчет того, нужно ли показывать дивайдер, в зависимости от того, проскроллен ли контент до конца\n if (contentRef.current !== null && scrollContainerRef.current !== null) {\n if (footer && (showDivider === 'always-if-has-scroll' || showDivider === 'if-not-scrolled-to-end')) {\n const hasScroll = contentRef.current.clientHeight > scrollContainerRef.current.clientHeight + 1;\n const isScrolledToContentEnd =\n Math.round(scrollContainerRef.current.scrollTop + scrollContainerRef.current.clientHeight) ===\n scrollContainerRef.current.scrollHeight;\n setDividerVisible(\n (showDivider === 'always-if-has-scroll' && hasScroll) ||\n (showDivider === 'if-not-scrolled-to-end' && hasScroll && !isScrolledToContentEnd)\n );\n }\n }\n }, [footer, heightDiff, setDividerVisible, showDivider]);\n\n const resetScrollFlags = useCallback(() => {\n if (fixedGrabberRef.current !== null && stickyGrabberRef.current !== null) {\n stateRef.current.grabber = 'sticky';\n\n fixedGrabberRef.current.classList.add(styles.grabberInvisible);\n fixedGrabberRef.current.classList.remove(styles.grabberTransitionAnimation);\n\n stickyGrabberRef.current.classList.remove(styles.grabberInvisible);\n }\n\n setDividerVisible(false);\n }, [setDividerVisible]);\n\n const resetHeightDiff = useCallback(() => setHeightDiff(null), [setHeightDiff]);\n\n useEffect(() => {\n const meta = document.querySelector('meta[name=\"viewport\"]') ?? document.createElement('meta');\n const attributesStr = meta.getAttribute('content');\n const attributes = (\n attributesStr !== null\n ? Object.fromEntries(attributesStr.split(',').map((keyValuePairStr) => keyValuePairStr.split('=')))\n : {}\n ) as Record<string, string>;\n attributes['interactive-widget'] = keyboardOverlaysContent ? 'resizes-visual' : 'resizes-content';\n const attributesStrUpdated = Object.entries(attributes)\n .map((keyValuePair) => keyValuePair.join('='))\n .join(',');\n meta.setAttribute('name', 'viewport');\n meta.setAttribute('content', attributesStrUpdated);\n }, [keyboardOverlaysContent]);\n\n const recalcKeyboardOffsets = useCallback(() => {\n if (!headerRef.current || !scrollContainerRef.current || !visualViewport) {\n return;\n }\n\n if (stateRef.current.hasFocus) {\n // терминология: https://developer.chrome.com/blog/viewport-resize-behavior/\n //\n // делим браузеры на три группы в зависимости от поведения при открытии виртуальной клавиатуры:\n // 1. Safari — ресайзит Visual Viewport, не меняет Layout Viewport.\n // В нем не нужно ничего корректировать при keyboardOverlaysContent=true,\n // а при keyboardOverlaysContent=false нужно сдвинуть НИЖНИЙ край контейнера ВВЕРХ,\n // чтобы он совпал с границей Visual Viewport\n // 2. Chrome < 108 & Chromium-based — ресайзит и Visual Viewport, и Layout Viewport\n // В нем не нужно ничего корректировать при keyboardOverlaysContent=false,\n // а при keyboardOverlaysContent=true нужно сдвинуть НИЖНИЙ край контейнера ВНИЗ,\n // чтобы футер уехал под клавиатуру\n // 3. Chrome >= 108 — поддерживает Virtual Keyboard API и meta-тег interactive-widget\n // Используем поведение `resizes-visual` (как в Safari) в случае keyboardOverlaysContent=true\n // и `resizes-content` (как в Chrome < 108 & Chromium-based) в случае keyboardOverlaysContent=false\n // Таким образом в нем ничего не нужно корректировать.\n\n const scrollContainerDOMREct = scrollContainerRef.current.getBoundingClientRect();\n\n // любой браузер может сдвинуть Visual Viewport вверх, если фокусируемый инпут находится близко к нижней границе\n // из-за этого может возникнуть проблема, что ВЕРХНИЙ край контента уехал за границу Visual Viewport\n // сдвигаем ВЕРХНИЙ край контейнера ВНИЗ, чтобы он совпал с границей Visual Viewport\n const visualViewportShift = Math.round(\n layoutMetricsRef.current.grabberSpacing - scrollContainerDOMREct.top\n );\n\n // запоминаем сдвиг для коррекции позиции граббера\n layoutMetricsRef.current.viewportShift = visualViewportShift;\n\n // клавиатура ПОВЕРХ контента\n // этот кейс нужно корректировать только в Chrome < 108 & Chromium-based\n if (keyboardOverlaysContent) {\n // браузеры из этой группы меняют Layout Viewport\n const layoutViewportDiff = Math.round(\n layoutMetricsRef.current.documentHeight - document.documentElement.clientHeight\n );\n if (layoutViewportDiff > 0) {\n setCSSVariable(CSS_VAR_VIRTUAL_KEYBOARD_TOP_OFFSET, `${visualViewportShift}px`);\n // сдвигаем НИЖНИЙ край контейнера ВНИЗ, чтобы футер уехал под клавиатуру\n setCSSVariable(CSS_VAR_VIRTUAL_KEYBOARD_BOTTOM_OFFSET, `${-layoutViewportDiff}px`);\n\n // при этом может возникнуть проблема, что клавиатура перекрыла хедер\n // проверяем это и компенсируем величину перекрытия при необходимости\n const headerDOMRect = headerRef.current.getBoundingClientRect();\n const headerOutOfViewportHeight = Math.round(\n headerDOMRect.bottom + layoutViewportDiff - layoutMetricsRef.current.documentHeight\n );\n if (headerOutOfViewportHeight > 0) {\n setCSSVariable(\n CSS_VAR_VIRTUAL_KEYBOARD_BOTTOM_OFFSET,\n `${headerOutOfViewportHeight - layoutViewportDiff}px`\n );\n }\n }\n } else {\n // клавиатура ПОД контентом\n // этот кейс нужно корректировать только в Safari\n\n // Safari ресайзит Visual Viewport\n const visualViewportDiff = Math.round(scrollContainerDOMREct.bottom - visualViewport.height);\n if (visualViewportDiff > 0) {\n setCSSVariable(CSS_VAR_VIRTUAL_KEYBOARD_TOP_OFFSET, `${visualViewportShift}px`);\n // сдвигаем НИЖНИЙ край контейнера ВВЕРХ, чтобы он совпал с границей Visual Viewport\n setCSSVariable(CSS_VAR_VIRTUAL_KEYBOARD_BOTTOM_OFFSET, `${visualViewportDiff}px`);\n }\n }\n } else {\n setCSSVariable(CSS_VAR_VIRTUAL_KEYBOARD_TOP_OFFSET, `0px`);\n setCSSVariable(CSS_VAR_VIRTUAL_KEYBOARD_BOTTOM_OFFSET, `0px`);\n }\n }, [keyboardOverlaysContent]);\n\n const handleFocus: FocusEventHandler = useCallback(\n (event) => {\n if (!scrollContainerRef.current) {\n return;\n }\n\n const focusedElement = event.target;\n const initialViewportHeight = visualViewport?.height;\n const resizeRAFStart = performance.now();\n\n if (!(focusedElement instanceof HTMLInputElement) || stateRef.current.resizeRAFHandle !== null) {\n return;\n }\n\n const handleResize = () => {\n if (stateRef.current.resizeRAFHandle !== null) {\n cancelAnimationFrame(stateRef.current.resizeRAFHandle);\n stateRef.current.resizeRAFHandle = null;\n }\n recalcKeyboardOffsets();\n };\n\n const waitForResize = () => {\n if (performance.now() - resizeRAFStart > 1000 || visualViewport?.height !== initialViewportHeight) {\n visualViewport?.removeEventListener('resize', handleResize);\n stateRef.current.resizeRAFHandle = null;\n recalcKeyboardOffsets();\n } else {\n stateRef.current.resizeRAFHandle = requestAnimationFrame(waitForResize);\n }\n };\n\n const handleBlur = () => {\n if (!scrollContainerRef.current) {\n return;\n }\n\n focusedElement.removeEventListener('blur', handleBlur);\n stateRef.current.hasFocus = false;\n scrollContainerRef.current.classList.remove(\n styles.scrollContainerNoScroll,\n styles.virtualKeyboardAnimation\n );\n\n if (isSafari) {\n setCSSVariable(CSS_VAR_VIRTUAL_KEYBOARD_TOP_OFFSET, `0px`);\n setCSSVariable(CSS_VAR_VIRTUAL_KEYBOARD_BOTTOM_OFFSET, `0px`);\n }\n\n if (stateRef.current.resizeRAFHandle !== null) {\n cancelAnimationFrame(stateRef.current.resizeRAFHandle);\n stateRef.current.resizeRAFHandle = null;\n }\n visualViewport?.removeEventListener('resize', handleResize);\n };\n\n focusedElement.addEventListener('blur', handleBlur);\n stateRef.current.hasFocus = true;\n if (!allowScrollWhileFocused) {\n scrollContainerRef.current.classList.add(styles.scrollContainerNoScroll);\n }\n scrollContainerRef.current.classList.add(styles.virtualKeyboardAnimation);\n\n stateRef.current.resizeRAFHandle = requestAnimationFrame(waitForResize);\n visualViewport?.addEventListener('resize', handleResize);\n },\n [allowScrollWhileFocused, recalcKeyboardOffsets]\n );\n\n // Запускает анимацию translateY для показа/скрытия боттомшита или изменения высоты контента\n const runTranslateYAnimation = useCallback(() => {\n if (\n !contentRef.current ||\n !contentOverlayRef.current ||\n !footerRef.current ||\n !heightTransitionElementRef.current ||\n !scrollContainerRef.current ||\n !visualViewport\n ) {\n return;\n }\n\n if (heightDiff !== null) {\n if (heightDiff > 0) {\n contentRef.current.style.transform = `translateY(${heightDiff}px)`;\n contentOverlayRef.current.style.transform = `translateY(${heightDiff}px)`;\n footerRef.current.style.transform = `translateY(${-heightDiff}px)`;\n } else {\n heightTransitionElementRef.current.style.flexBasis = `${-heightDiff}px`;\n }\n } else {\n const contentDOMREct = contentRef.current.getBoundingClientRect();\n const translateY =\n scrollContainerRef.current.clientHeight + stateRef.current.swipeOffset - contentDOMREct.top;\n contentRef.current.style.transform = `translateY(${translateY}px)`;\n contentOverlayRef.current.style.transform = `translateY(${translateY}px)`;\n setCSSVariable(CSS_VAR_OVERLAY_OPACITY, `0`);\n }\n\n forceRepaint(scrollContainerRef.current);\n }, [heightDiff]);\n\n const resetTranslateY = useCallback(() => {\n if (\n !contentRef.current ||\n !contentOverlayRef.current ||\n !footerRef.current ||\n !heightTransitionElementRef.current ||\n !scrollContainerRef.current\n ) {\n return;\n }\n\n if (heightDiff !== null) {\n contentRef.current.style.transform = ``;\n contentOverlayRef.current.style.transform = ``;\n footerRef.current.style.transform = ``;\n heightTransitionElementRef.current.style.flexBasis = ``;\n } else {\n contentRef.current.style.transform = `translateY(${stateRef.current.swipeOffset}px)`;\n contentOverlayRef.current.style.transform = `translateY(${stateRef.current.swipeOffset}px)`;\n setCSSVariable(CSS_VAR_OVERLAY_OPACITY, `1`);\n }\n\n forceRepaint(scrollContainerRef.current);\n }, [heightDiff]);\n\n const handleAppearAnimationEnd = useCallback(() => {\n let scrollTop = scrollContainerRef.current?.scrollTop ?? 0;\n let scrollLocked = false;\n\n // Обработчик скролла для блокировки оверскролла в браузерах без поддержки css правила overscroll-behavior\n const handleScroll = (event: Event) => {\n const currentTarget = event.currentTarget as HTMLDivElement;\n const forward = currentTarget.scrollTop > scrollTop;\n const maxScroll = currentTarget.scrollHeight - currentTarget.offsetHeight;\n\n if (!scrollLocked && forward && currentTarget.scrollTop > maxScroll) {\n currentTarget.style.overflow = 'hidden';\n currentTarget.scrollTop = maxScroll;\n scrollLocked = true;\n scrollTop = maxScroll;\n setTimeout(() => {\n currentTarget.style.overflow = 'auto';\n scrollLocked = false;\n }, 1);\n event.preventDefault();\n return;\n }\n\n scrollTop = currentTarget.scrollTop;\n };\n\n // удаления хендлеров нет т.к. установлен флаг unmountOnExit, т.е. элемент удаляется из DOM\n // после завершения анимации\n scrollContainerRef.current?.addEventListener('touchmove', handleScroll, { passive: false });\n scrollContainerRef.current?.addEventListener('scroll', handleScroll, { passive: false });\n\n recalcScrollFlags();\n onAppear?.();\n }, [onAppear, recalcScrollFlags]);\n\n const handleExitAnimationStart = useCallback(() => {\n resetTranslateY();\n onBeforeExit?.();\n }, [resetTranslateY, onBeforeExit]);\n\n const handleExitAnimationEnd = useCallback(() => {\n stateRef.current.grabber = 'sticky';\n stateRef.current.hasFocus = false;\n stateRef.current.isSwipeEnabled = false;\n changeSwipeProgressState(stateRef, scrollContainerRef, false, !!allowScrollWhileFocused);\n stateRef.current.swipeOffset = 0;\n stateRef.current.resizeRAFHandle !== null && cancelAnimationFrame(stateRef.current.resizeRAFHandle);\n stateRef.current.resizeRAFHandle = null;\n\n layoutMetricsRef.current.fillHeight = 0;\n layoutMetricsRef.current.grabberSpacing = 0;\n\n setCSSVariable(CSS_VAR_OVERLAY_OPACITY, `1`);\n setCSSVariable(CSS_VAR_VIRTUAL_KEYBOARD_TOP_OFFSET, `0px`);\n setCSSVariable(CSS_VAR_VIRTUAL_KEYBOARD_BOTTOM_OFFSET, `0px`);\n\n if (fixedGrabberRef.current !== null) {\n fixedGrabberRef.current.classList.add(styles.grabberInvisible);\n fixedGrabberRef.current.classList.remove(styles.grabberFixed, styles.grabberFakeSticky);\n fixedGrabberRef.current.style.transform = ``;\n }\n\n if (scrollContainerRef.current !== null) {\n scrollContainerRef.current.classList.remove(\n styles.scrollContainerNoScroll,\n styles.virtualKeyboardAnimation\n );\n }\n\n resetScrollFlags();\n setOnCloseContractCheck(false);\n onAfterExit?.();\n }, [resetScrollFlags, setOnCloseContractCheck, onAfterExit, allowScrollWhileFocused]);\n\n const handleClose = useCallback(() => {\n onClose();\n setOnCloseContractCheck(true);\n }, [onClose, setOnCloseContractCheck]);\n\n const handleSwipeStart: SwipeEventHandler = useCallback(() => {\n if (!scrollContainerRef.current) {\n return;\n }\n\n if (Object.is(Math.round(scrollContainerRef.current.scrollTop), 0)) {\n stateRef.current.isSwipeEnabled = true;\n stateRef.current.swipeOffset = 0;\n }\n }, []);\n\n const handleSwipeMove: SwipeEventHandler = useCallback(\n (event) => {\n if (\n !contentRef.current ||\n !contentOverlayRef.current ||\n !stateRef.current.isSwipeEnabled ||\n !scrollContainerRef.current\n ) {\n return;\n }\n\n const selection = document.getSelection();\n if (selection && !selection.isCollapsed) {\n return;\n }\n\n if (event.distanceY > 0) {\n contentRef.current.style.transform = `translateY(${event.distanceY}px)`;\n contentOverlayRef.current.style.transform = `translateY(${event.distanceY}px)`;\n if (!stateRef.current.isSwipeInProgress) {\n changeSwipeProgressState(stateRef, scrollContainerRef, true, !!allowScrollWhileFocused);\n }\n recalcScrollFlags();\n } else {\n contentRef.current.style.transform = ``;\n contentOverlayRef.current.style.transform = ``;\n stateRef.current.isSwipeEnabled = false;\n changeSwipeProgressState(stateRef, scrollContainerRef, false, !!allowScrollWhileFocused);\n }\n\n stateRef.current.swipeOffset = event.distanceY;\n },\n [recalcScrollFlags, allowScrollWhileFocused]\n );\n\n const handleSwipeCancel: SwipeEventHandler = useCallback(() => {\n if (!contentRef.current || !contentOverlayRef.current || !scrollContainerRef.current) {\n return;\n }\n\n if (stateRef.current.isSwipeEnabled && stateRef.current.isSwipeInProgress) {\n contentRef.current.style.transform = ``;\n contentOverlayRef.current.style.transform = ``;\n }\n\n stateRef.current.isSwipeEnabled = false;\n changeSwipeProgressState(stateRef, scrollContainerRef, false, !!allowScrollWhileFocused);\n stateRef.current.swipeOffset = 0;\n\n recalcScrollFlags();\n }, [recalcScrollFlags, allowScrollWhileFocused]);\n\n const handleSwipeEnd: SwipeEventHandler = useCallback(\n (event) => {\n if (stateRef.current.isSwipeEnabled && stateRef.current.isSwipeInProgress) {\n handleClose();\n } else {\n handleSwipeCancel(event);\n }\n },\n [handleClose, handleSwipeCancel]\n );\n\n const { onTouchStart, onTouchMove, onTouchEnd, onTouchCancel } = useSwipe({\n thresholdYRef: SWIPE_THRESHOLD_REF,\n onSwipeStart: handleSwipeStart,\n onSwipeMove: handleSwipeMove,\n onSwipeEnd: handleSwipeEnd,\n onSwipeCancel: handleSwipeCancel,\n });\n\n const swipeHandlers = useMemo<\n Record<'onTouchStart' | 'onTouchMove' | 'onTouchEnd' | 'onTouchCancel', TouchEventHandler<HTMLElement>>\n >(() => {\n const withStopPropagation =\n (callback?: TouchEventHandler): TouchEventHandler =>\n (event) => {\n event.stopPropagation();\n callback?.(event);\n };\n return {\n onTouchStart: withStopPropagation(onTouchStart),\n onTouchMove: withStopPropagation(onTouchMove),\n onTouchEnd,\n onTouchCancel,\n };\n }, [onTouchStart, onTouchMove, onTouchEnd, onTouchCancel]);\n\n useLayoutEffect(() => {\n if (\n !contentRef.current ||\n !footerRef.current ||\n !headerRef.current ||\n !scrollContainerRef.current ||\n !visualViewport\n ) {\n return;\n }\n\n if (visible) {\n stateRef.current.grabber = contentRef.current.offsetTop > 0 ? 'sticky' : 'sticky-inside';\n if (visible !== prevPropsRef.current.visible) {\n layoutMetricsRef.current.fillHeight = contentRef.current.offsetTop;\n layoutMetricsRef.current.grabberSpacing = scrollContainerRef.current.offsetTop;\n\n setCSSVariable(\n CSS_VAR_CONTENT_OVERLAY_TOP,\n `${contentRef.current.offsetTop + headerRef.current.clientHeight}px`\n );\n setCSSVariable(\n CSS_VAR_CONTENT_OVERLAY_HEIGHT,\n `${footerRef.current.offsetTop - headerRef.current.clientHeight}px`\n );\n setCSSVariable(CSS_VAR_INITIAL_VIEWPORT_HEIGHT, `${INITIAL_VIEWPORT_HEIGHT}px`);\n } else if (children !== prevPropsRef.current.children || height !== prevPropsRef.current.height) {\n const scrollTop = scrollContainerRef.current.scrollTop;\n scrollContainerRef.current.scrollTo({ top: 0 });\n\n const _heightDiff = layoutMetricsRef.current.fillHeight - contentRef.current.offsetTop;\n layoutMetricsRef.current.fillHeight = contentRef.current.offsetTop;\n if (_heightDiff !== 0 && !stateRef.current.hasFocus) {\n setHeightDiff(_heightDiff);\n }\n\n scrollContainerRef.current.scrollTo({ top: scrollTop });\n }\n }\n\n prevPropsRef.current = { ...prevPropsRef.current, children, height, visible };\n }, [children, height, setHeightDiff, visible]);\n\n if (onCloseContractCheck && visible) {\n console.error('onClose did not set visible=false', Date.now());\n }\n\n const contextValue = useMemo(() => ({ contentOverlayRef }), [contentOverlayRef]);\n\n const eventHandlers = useNoBubbling();\n\n if (!animationTimeout) {\n return null;\n }\n\n const renderFunc = (appearTransition: TransitionStatus, heightTransition: TransitionStatus) => (\n <Layer layer={InternalLayerName.BottomSheet}>\n <div\n {...eventHandlers}\n className={classnames(styles.overlay, {\n [styles.overlayInvisible]:\n !showOverlay || (showOverlay && appearTransition !== 'exiting' && !currentVisible),\n })}\n data-qa=\"bottom-sheet-overlay\"\n >\n <div\n className={classnames(styles.overlayBackground, {\n [styles.appearAnimation]: appearTransition === 'entering',\n [styles.disappearAnimation]: appearTransition === 'exiting',\n })}\n />\n <div\n className={classnames(styles.grabber, styles.grabberTransitionAnimation, {\n [styles.grabberInvisible]: appearTransition !== 'entered' || heightTransition !== 'exited',\n [styles.grabberFixed]:\n stateRef.current.grabber === 'fixed' || stateRef.current.grabber === 'sticky-inside',\n [styles.grabberFakeSticky]: stateRef.current.grabber === 'fake-sticky',\n })}\n ref={fixedGrabberRef}\n />\n <div\n className={classnames(styles.scrollContainer, {\n [styles.scrollContainerNoScroll]: !allowScrollWhileFocused && stateRef.current.hasFocus,\n [styles.virtualKeyboardAnimation]: stateRef.current.hasFocus,\n })}\n data-qa=\"bottom-sheet-container\"\n onScroll={recalcScrollFlags}\n ref={scrollContainerRefMulti}\n >\n <div\n className={classnames(styles.fill, {\n [styles.fillFullScreen]: height === 'full-screen',\n [styles.fillHalfScreen]: height === 'half-screen',\n })}\n data-qa=\"bottom-sheet-fill\"\n onClick={handleClose}\n />\n <div\n className={classnames(styles.content, {\n [styles.appearAnimation]: appearTransition === 'entering',\n [styles.closeBySwipeAnimation]:\n appearTransition === 'exiting' && stateRef.current.isSwipeInProgress,\n [styles.contentFullScreen]: height === 'full-screen',\n [styles.disappearAnimation]: appearTransition === 'exiting',\n [styles.heightTransitionAnimation]: heightTransition === 'entering',\n })}\n data-qa=\"bottom-sheet-content\"\n ref={contentRef}\n {...swipeHandlers}\n >\n <div\n className={classnames(styles.grabber, styles.grabberSticky, {\n [styles.grabberStickyInside]:\n appearTransition === 'entering' && stateRef.current.grabber === 'sticky-inside',\n })}\n ref={stickyGrabberRef}\n />\n <div className={styles.visualContainer}>\n <div className={styles.header} onFocus={handleFocus} ref={headerRef}>\n <NavigationBarContext.Provider value={NAVIGATION_BAR_SIZE_OVERRIDE}>\n {header}\n </NavigationBarContext.Provider>\n </div>\n <div\n className={classnames(styles.main, {\n [styles.mainWithPaddings]: withContentPaddings,\n [styles.mainWithoutHeader]: !header,\n })}\n >\n <BottomSheetContext.Provider value={contextValue}>\n {children}\n </BottomSheetContext.Provider>\n </div>\n <div\n className={classnames(styles.heightTransitionElement, {\n [styles.heightTransitionAnimation]: heightTransition === 'entering',\n })}\n ref={heightTransitionElementRef}\n />\n <div\n className={classnames(styles.footer, {\n [styles.heightTransitionAnimation]: heightTransition === 'entering',\n })}\n ref={footerRef}\n >\n {isDividerVisible && <Divider />}\n {interceptClickHandlers ? <ClickInterceptor>{footer}</ClickInterceptor> : footer}\n </div>\n </div>\n </div>\n </div>\n <div className={styles.contentOverlay} ref={contentOverlayRef} />\n </div>\n </Layer>\n );\n\n return createPortal(\n <div\n className={styles.cssVariablesContainer}\n data-qa=\"bottom-sheet-css-variables\"\n ref={cssVariablesContainerRef}\n >\n <Transition\n appear\n in={currentVisible}\n mountOnEnter\n onEnter={runTranslateYAnimation}\n onEntering={resetTranslateY}\n onEntered={handleAppearAnimationEnd}\n onExit={handleExitAnimationStart}\n onExiting={runTranslateYAnimation}\n onExited={handleExitAnimationEnd}\n timeout={animationTimeout.appear}\n unmountOnExit\n nodeRef={contentRef}\n >\n {(appearTransition) => (\n <Transition\n in={heightDiff !== null}\n onEnter={runTranslateYAnimation}\n onEntering={resetTranslateY}\n onEntered={resetHeightDiff}\n onExited={recalcScrollFlags}\n timeout={animationTimeout.height}\n nodeRef={contentRef}\n >\n {(heightTransition) => renderFunc(appearTransition, heightTransition)}\n </Transition>\n )}\n </Transition>\n </div>,\n document.body\n );\n};\n\nexport const BottomSheet = forwardRef(BottomSheetRenderFunc);\n\nBottomSheet.displayName = 'BottomSheet';\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import { s as styles } from './bottom-sheet-0_1ZAsvk.js';
3
+ import { s as styles } from './bottom-sheet-tVHu4rnM.js';
4
4
 
5
5
  const BottomSheetFooter = ({ children }) => (jsx("div", { className: styles.footerWithPadding, children: children }));
6
6
 
@@ -0,0 +1,5 @@
1
+ import './index.css';
2
+ var styles = {"animation-timeout":"magritte-animation-timeout___yd-SZ_4-1-37","animationTimeout":"magritte-animation-timeout___yd-SZ_4-1-37","css-variables-container":"magritte-css-variables-container___jBCr9_4-1-37","cssVariablesContainer":"magritte-css-variables-container___jBCr9_4-1-37","appear-animation":"magritte-appear-animation___P84Ln_4-1-37","appearAnimation":"magritte-appear-animation___P84Ln_4-1-37","disappear-animation":"magritte-disappear-animation___Putks_4-1-37","disappearAnimation":"magritte-disappear-animation___Putks_4-1-37","content":"magritte-content___1gAwP_4-1-37","overlay-background":"magritte-overlay-background___8Sd4V_4-1-37","overlayBackground":"magritte-overlay-background___8Sd4V_4-1-37","grabber-transition-animation":"magritte-grabber-transition-animation___s3Oh4_4-1-37","grabberTransitionAnimation":"magritte-grabber-transition-animation___s3Oh4_4-1-37","height-transition-animation":"magritte-height-transition-animation___xNprr_4-1-37","heightTransitionAnimation":"magritte-height-transition-animation___xNprr_4-1-37","footer":"magritte-footer___RWslT_4-1-37","height-transition-element":"magritte-height-transition-element___tyx84_4-1-37","heightTransitionElement":"magritte-height-transition-element___tyx84_4-1-37","close-by-swipe-animation":"magritte-close-by-swipe-animation___wdezY_4-1-37","closeBySwipeAnimation":"magritte-close-by-swipe-animation___wdezY_4-1-37","virtual-keyboard-animation":"magritte-virtual-keyboard-animation___vM9e-_4-1-37","virtualKeyboardAnimation":"magritte-virtual-keyboard-animation___vM9e-_4-1-37","overlay":"magritte-overlay___5a2U-_4-1-37","overlay_invisible":"magritte-overlay_invisible___-YFlP_4-1-37","overlayInvisible":"magritte-overlay_invisible___-YFlP_4-1-37","scroll-container":"magritte-scroll-container___4ngNY_4-1-37","scrollContainer":"magritte-scroll-container___4ngNY_4-1-37","scroll-container_no-scroll":"magritte-scroll-container_no-scroll___9BJP6_4-1-37","scrollContainerNoScroll":"magritte-scroll-container_no-scroll___9BJP6_4-1-37","fill":"magritte-fill___9eVpH_4-1-37","fill_full-screen":"magritte-fill_full-screen___HrIrL_4-1-37","fillFullScreen":"magritte-fill_full-screen___HrIrL_4-1-37","fill_half-screen":"magritte-fill_half-screen___phiVM_4-1-37","fillHalfScreen":"magritte-fill_half-screen___phiVM_4-1-37","content_full-screen":"magritte-content_full-screen___2SFaO_4-1-37","contentFullScreen":"magritte-content_full-screen___2SFaO_4-1-37","visual-container":"magritte-visual-container___-VSuY_4-1-37","visualContainer":"magritte-visual-container___-VSuY_4-1-37","header":"magritte-header___5mMtj_4-1-37","main":"magritte-main___tvGXi_4-1-37","main_with-paddings":"magritte-main_with-paddings___o8gOS_4-1-37","mainWithPaddings":"magritte-main_with-paddings___o8gOS_4-1-37","main_without-header":"magritte-main_without-header___ra86o_4-1-37","mainWithoutHeader":"magritte-main_without-header___ra86o_4-1-37","footer_swipe-in-progress":"magritte-footer_swipe-in-progress___h6f9r_4-1-37","footerSwipeInProgress":"magritte-footer_swipe-in-progress___h6f9r_4-1-37","footer-with-padding":"magritte-footer-with-padding___KwkhC_4-1-37","footerWithPadding":"magritte-footer-with-padding___KwkhC_4-1-37","grabber":"magritte-grabber___A7SB-_4-1-37","grabber_invisible":"magritte-grabber_invisible___Y-Iwm_4-1-37","grabberInvisible":"magritte-grabber_invisible___Y-Iwm_4-1-37","grabber_sticky":"magritte-grabber_sticky___-DE-B_4-1-37","grabberSticky":"magritte-grabber_sticky___-DE-B_4-1-37","grabber_fake-sticky":"magritte-grabber_fake-sticky___DKj2G_4-1-37","grabberFakeSticky":"magritte-grabber_fake-sticky___DKj2G_4-1-37","grabber_fixed":"magritte-grabber_fixed___qv9BU_4-1-37","grabberFixed":"magritte-grabber_fixed___qv9BU_4-1-37","grabber_sticky-inside":"magritte-grabber_sticky-inside___6vQtN_4-1-37","grabberStickyInside":"magritte-grabber_sticky-inside___6vQtN_4-1-37","content-overlay":"magritte-content-overlay___HAyzL_4-1-37","contentOverlay":"magritte-content-overlay___HAyzL_4-1-37"};
3
+
4
+ export { styles as s };
5
+ //# sourceMappingURL=bottom-sheet-tVHu4rnM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bottom-sheet-tVHu4rnM.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
package/index.css CHANGED
@@ -20,8 +20,8 @@
20
20
  --magritte-color-component-bottom-sheet-grabber-content-v18-2-1:#c6c6c68f;
21
21
  --magritte-color-component-_overlay-background-content-v18-2-1:#26262699;
22
22
  }
23
- .magritte-animation-timeout___yd-SZ_4-1-35,
24
- .magritte-css-variables-container___jBCr9_4-1-35{
23
+ .magritte-animation-timeout___yd-SZ_4-1-37,
24
+ .magritte-css-variables-container___jBCr9_4-1-37{
25
25
  --initial-viewport-height:100%;
26
26
  --overlay-opacity:1;
27
27
  --virtual-keyboard-top-offset:0px;
@@ -33,8 +33,8 @@
33
33
  --virtual-keyboard-animation-duration:0ms;
34
34
  }
35
35
  @media (prefers-reduced-motion: no-preference){
36
- .magritte-animation-timeout___yd-SZ_4-1-35,
37
- .magritte-css-variables-container___jBCr9_4-1-35{
36
+ .magritte-animation-timeout___yd-SZ_4-1-37,
37
+ .magritte-css-variables-container___jBCr9_4-1-37{
38
38
  --enter-animation-duration:var(--magritte-semantic-animation-ease-in-out-300-duration-v18-2-1);
39
39
  --exit-animation-duration:var(--magritte-semantic-animation-ease-in-out-200-duration-v18-2-1);
40
40
  --grabber-animation-duration:var(--magritte-semantic-animation-ease-in-out-200-duration-v18-2-1);
@@ -42,65 +42,65 @@
42
42
  --virtual-keyboard-animation-duration:var(--magritte-semantic-animation-ease-in-out-100-duration-v18-2-1);
43
43
  }
44
44
  }
45
- .magritte-appear-animation___P84Ln_4-1-35{
45
+ .magritte-appear-animation___P84Ln_4-1-37{
46
46
  transition-property:transform;
47
47
  transition-duration:var(--enter-animation-duration);
48
48
  transition-timing-function:var(--magritte-semantic-animation-ease-in-out-300-timing-function-v18-2-1);
49
49
  }
50
- .magritte-disappear-animation___Putks_4-1-35{
50
+ .magritte-disappear-animation___Putks_4-1-37{
51
51
  transition-duration:var(--exit-animation-duration);
52
52
  transition-timing-function:var(--magritte-semantic-animation-ease-in-out-200-timing-function-v18-2-1);
53
53
  }
54
- .magritte-content___1gAwP_4-1-35.magritte-disappear-animation___Putks_4-1-35{
54
+ .magritte-content___1gAwP_4-1-37.magritte-disappear-animation___Putks_4-1-37{
55
55
  transition-property:transform;
56
56
  }
57
- .magritte-overlay-background___8Sd4V_4-1-35.magritte-appear-animation___P84Ln_4-1-35,
58
- .magritte-overlay-background___8Sd4V_4-1-35.magritte-disappear-animation___Putks_4-1-35{
57
+ .magritte-overlay-background___8Sd4V_4-1-37.magritte-appear-animation___P84Ln_4-1-37,
58
+ .magritte-overlay-background___8Sd4V_4-1-37.magritte-disappear-animation___Putks_4-1-37{
59
59
  transition-property:opacity;
60
60
  }
61
- .magritte-grabber-transition-animation___s3Oh4_4-1-35{
61
+ .magritte-grabber-transition-animation___s3Oh4_4-1-37{
62
62
  transition-property:transform;
63
63
  transition-duration:var(--grabber-animation-duration);
64
64
  transition-timing-function:var(--magritte-semantic-animation-ease-in-out-200-timing-function-v18-2-1);
65
65
  }
66
- .magritte-content___1gAwP_4-1-35.magritte-height-transition-animation___xNprr_4-1-35,
67
- .magritte-footer___RWslT_4-1-35.magritte-height-transition-animation___xNprr_4-1-35{
66
+ .magritte-content___1gAwP_4-1-37.magritte-height-transition-animation___xNprr_4-1-37,
67
+ .magritte-footer___RWslT_4-1-37.magritte-height-transition-animation___xNprr_4-1-37{
68
68
  transition-property:transform;
69
69
  }
70
- .magritte-height-transition-element___tyx84_4-1-35.magritte-height-transition-animation___xNprr_4-1-35{
70
+ .magritte-height-transition-element___tyx84_4-1-37.magritte-height-transition-animation___xNprr_4-1-37{
71
71
  transition-property:flex-basis;
72
72
  }
73
- .magritte-height-transition-animation___xNprr_4-1-35{
73
+ .magritte-height-transition-animation___xNprr_4-1-37{
74
74
  transition-duration:var(--height-transition-duration);
75
75
  transition-timing-function:var(--magritte-semantic-animation-ease-in-out-400-timing-function-v18-2-1);
76
76
  }
77
- .magritte-close-by-swipe-animation___wdezY_4-1-35{
77
+ .magritte-close-by-swipe-animation___wdezY_4-1-37{
78
78
  transition-property:transform;
79
79
  transition-duration:var(--exit-animation-duration);
80
80
  transition-timing-function:linear;
81
81
  }
82
- .magritte-virtual-keyboard-animation___vM9e-_4-1-35{
82
+ .magritte-virtual-keyboard-animation___vM9e-_4-1-37{
83
83
  transition-property:bottom;
84
84
  transition-duration:var(--virtual-keyboard-animation-duration);
85
85
  transition-timing-function:var(--magritte-semantic-animation-ease-in-out-100-timing-function-v18-2-1);
86
86
  }
87
- .magritte-overlay___5a2U-_4-1-35{
87
+ .magritte-overlay___5a2U-_4-1-37{
88
88
  position:fixed;
89
89
  inset:0;
90
90
  }
91
- .magritte-overlay-background___8Sd4V_4-1-35{
91
+ .magritte-overlay-background___8Sd4V_4-1-37{
92
92
  position:absolute;
93
93
  inset:0;
94
94
  background-color:var(--magritte-color-component-_overlay-background-content-v18-2-1);
95
95
  opacity:var(--overlay-opacity);
96
96
  }
97
- .magritte-overlay_invisible___-YFlP_4-1-35{
97
+ .magritte-overlay_invisible___-YFlP_4-1-37{
98
98
  pointer-events:none;
99
99
  }
100
- .magritte-overlay_invisible___-YFlP_4-1-35 .magritte-overlay-background___8Sd4V_4-1-35{
100
+ .magritte-overlay_invisible___-YFlP_4-1-37 .magritte-overlay-background___8Sd4V_4-1-37{
101
101
  background-color:transparent;
102
102
  }
103
- .magritte-scroll-container___4ngNY_4-1-35{
103
+ .magritte-scroll-container___4ngNY_4-1-37{
104
104
  position:absolute;
105
105
  inset:calc(20px + var(--virtual-keyboard-top-offset)) calc(max(50vw, 640px / 2) - 640px / 2) var(--virtual-keyboard-bottom-offset);
106
106
  border-radius:var(--magritte-semantic-border-radius-modal-v18-2-1) var(--magritte-semantic-border-radius-modal-v18-2-1) 0 0;
@@ -113,23 +113,23 @@
113
113
  user-select:text;
114
114
  contain:paint;
115
115
  }
116
- .magritte-scroll-container___4ngNY_4-1-35::-webkit-scrollbar{
116
+ .magritte-scroll-container___4ngNY_4-1-37::-webkit-scrollbar{
117
117
  display:none;
118
118
  }
119
- .magritte-scroll-container_no-scroll___9BJP6_4-1-35{
119
+ .magritte-scroll-container_no-scroll___9BJP6_4-1-37{
120
120
  touch-action:none;
121
121
  overflow-y:hidden;
122
122
  }
123
- .magritte-fill___9eVpH_4-1-35{
123
+ .magritte-fill___9eVpH_4-1-37{
124
124
  flex:1 0 0;
125
125
  }
126
- .magritte-fill_full-screen___HrIrL_4-1-35{
126
+ .magritte-fill_full-screen___HrIrL_4-1-37{
127
127
  flex:0 0 0;
128
128
  }
129
- .magritte-fill_half-screen___phiVM_4-1-35{
129
+ .magritte-fill_half-screen___phiVM_4-1-37{
130
130
  flex:1 0 calc(100% - var(--initial-viewport-height) / 2 - var(--virtual-keyboard-bottom-offset) - 20px);
131
131
  }
132
- .magritte-content___1gAwP_4-1-35{
132
+ .magritte-content___1gAwP_4-1-37{
133
133
  pointer-events:initial;
134
134
  position:relative;
135
135
  flex:0 0 auto;
@@ -138,10 +138,10 @@
138
138
  align-self:center;
139
139
  width:100%;
140
140
  }
141
- .magritte-content_full-screen___2SFaO_4-1-35{
141
+ .magritte-content_full-screen___2SFaO_4-1-37{
142
142
  flex:1 0 calc(var(--initial-viewport-height) - var(--virtual-keyboard-bottom-offset) - 20px + 1px);
143
143
  }
144
- .magritte-visual-container___-VSuY_4-1-35{
144
+ .magritte-visual-container___-VSuY_4-1-37{
145
145
  background-color:var(--magritte-color-component-bottom-sheet-background-content-v18-2-1);
146
146
  border-radius:var(--magritte-semantic-border-radius-modal-v18-2-1) var(--magritte-semantic-border-radius-modal-v18-2-1) 0 0;
147
147
  contain:paint;
@@ -149,7 +149,7 @@
149
149
  flex-direction:column;
150
150
  height:100%;
151
151
  }
152
- .magritte-header___5mMtj_4-1-35{
152
+ .magritte-header___5mMtj_4-1-37{
153
153
  --magritte-ui-navigation-bar-background-override:var(--magritte-color-component-bottom-sheet-background-content-v18-2-1);
154
154
  flex:0 0 auto;
155
155
  position:sticky;
@@ -158,22 +158,22 @@
158
158
  background-color:var(--magritte-color-component-bottom-sheet-background-content-v18-2-1);
159
159
  z-index:2;
160
160
  }
161
- .magritte-main___tvGXi_4-1-35{
161
+ .magritte-main___tvGXi_4-1-37{
162
162
  flex:1 0 auto;
163
163
  z-index:1;
164
164
  }
165
- .magritte-main_with-paddings___o8gOS_4-1-35{
165
+ .magritte-main_with-paddings___o8gOS_4-1-37{
166
166
  padding:16px 16px 0;
167
167
  }
168
- .magritte-main_with-paddings___o8gOS_4-1-35.magritte-main_without-header___ra86o_4-1-35{
168
+ .magritte-main_with-paddings___o8gOS_4-1-37.magritte-main_without-header___ra86o_4-1-37{
169
169
  padding:0 16px;
170
170
  }
171
- .magritte-height-transition-element___tyx84_4-1-35{
171
+ .magritte-height-transition-element___tyx84_4-1-37{
172
172
  flex:0 0 0px;
173
173
  background-color:var(--magritte-color-component-bottom-sheet-background-content-v18-2-1);
174
174
  will-change:flex-basis;
175
175
  }
176
- .magritte-footer___RWslT_4-1-35{
176
+ .magritte-footer___RWslT_4-1-37{
177
177
  flex:0 0 auto;
178
178
  position:sticky;
179
179
  bottom:0;
@@ -182,43 +182,43 @@
182
182
  will-change:transform;
183
183
  z-index:2;
184
184
  }
185
- .magritte-footer_swipe-in-progress___h6f9r_4-1-35{
185
+ .magritte-footer_swipe-in-progress___h6f9r_4-1-37{
186
186
  position:absolute;
187
187
  left:0;
188
188
  right:0;
189
189
  }
190
- .magritte-footer-with-padding___KwkhC_4-1-35{
190
+ .magritte-footer-with-padding___KwkhC_4-1-37{
191
191
  display:flex;
192
192
  flex-direction:column;
193
193
  gap:12px;
194
194
  padding:16px 16px 0;
195
195
  }
196
- .magritte-grabber___A7SB-_4-1-35{
196
+ .magritte-grabber___A7SB-_4-1-37{
197
197
  height:0;
198
198
  width:100%;
199
199
  z-index:1;
200
200
  display:none;
201
201
  }
202
- .magritte-grabber_invisible___Y-Iwm_4-1-35{
202
+ .magritte-grabber_invisible___Y-Iwm_4-1-37{
203
203
  visibility:hidden;
204
204
  }
205
- .magritte-grabber_sticky___-DE-B_4-1-35{
205
+ .magritte-grabber_sticky___-DE-B_4-1-37{
206
206
  position:sticky;
207
207
  top:-20px;
208
208
  display:block;
209
209
  }
210
- .magritte-grabber_fake-sticky___DKj2G_4-1-35{
210
+ .magritte-grabber_fake-sticky___DKj2G_4-1-37{
211
211
  position:fixed;
212
212
  top:0;
213
213
  display:block;
214
214
  }
215
- .magritte-grabber_fixed___qv9BU_4-1-35{
215
+ .magritte-grabber_fixed___qv9BU_4-1-37{
216
216
  position:fixed;
217
217
  top:20px;
218
218
  transform:translateY(calc(20px + var(--virtual-keyboard-top-offset)));
219
219
  display:block;
220
220
  }
221
- .magritte-grabber___A7SB-_4-1-35::after{
221
+ .magritte-grabber___A7SB-_4-1-37::after{
222
222
  content:'';
223
223
  position:absolute;
224
224
  top:-12px;
@@ -228,10 +228,10 @@
228
228
  background-color:var(--magritte-color-component-bottom-sheet-grabber-content-v18-2-1);
229
229
  border-radius:var(--magritte-static-border-radius-50-v18-2-1);
230
230
  }
231
- .magritte-grabber_sticky-inside___6vQtN_4-1-35::after{
231
+ .magritte-grabber_sticky-inside___6vQtN_4-1-37::after{
232
232
  top:8px;
233
233
  }
234
- .magritte-content-overlay___HAyzL_4-1-35{
234
+ .magritte-content-overlay___HAyzL_4-1-37{
235
235
  pointer-events:none;
236
236
  position:absolute;
237
237
  inset:calc(20px + var(--content-overlay-top, 0px)) 0 auto 0;
package/index.js CHANGED
@@ -10,6 +10,7 @@ import 'react-transition-group';
10
10
  import 'classnames';
11
11
  import '@hh.ru/magritte-common-modal-helper';
12
12
  import '@hh.ru/magritte-common-use-multiple-refs';
13
+ import '@hh.ru/magritte-common-use-no-bubbling';
13
14
  import '@hh.ru/magritte-common-use-swipe';
14
15
  import '@hh.ru/magritte-internal-layer-name';
15
16
  import './BottomSheetContext.js';
@@ -18,5 +19,5 @@ import '@hh.ru/magritte-ui-breakpoint';
18
19
  import '@hh.ru/magritte-ui-divider';
19
20
  import '@hh.ru/magritte-ui-layer';
20
21
  import '@hh.ru/magritte-ui-navigation-bar';
21
- import './bottom-sheet-0_1ZAsvk.js';
22
+ import './bottom-sheet-tVHu4rnM.js';
22
23
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hh.ru/magritte-ui-bottom-sheet",
3
- "version": "4.1.35",
3
+ "version": "4.1.37",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "sideEffects": [
@@ -22,7 +22,8 @@
22
22
  "dependencies": {
23
23
  "@hh.ru/magritte-common-func-utils": "1.3.7",
24
24
  "@hh.ru/magritte-common-modal-helper": "1.2.7",
25
- "@hh.ru/magritte-common-use-multiple-refs": "1.1.3",
25
+ "@hh.ru/magritte-common-use-multiple-refs": "1.1.4",
26
+ "@hh.ru/magritte-common-use-no-bubbling": "1.0.1",
26
27
  "@hh.ru/magritte-common-use-swipe": "3.0.2",
27
28
  "@hh.ru/magritte-design-tokens": "18.2.1",
28
29
  "@hh.ru/magritte-internal-layer-name": "2.1.2",
@@ -30,7 +31,7 @@
30
31
  "@hh.ru/magritte-ui-divider": "1.1.28",
31
32
  "@hh.ru/magritte-ui-layer": "2.0.5",
32
33
  "@hh.ru/magritte-ui-mock-component": "1.0.11",
33
- "@hh.ru/magritte-ui-navigation-bar": "4.1.18",
34
+ "@hh.ru/magritte-ui-navigation-bar": "4.1.20",
34
35
  "@hh.ru/magritte-ui-theme-provider": "1.1.25"
35
36
  },
36
37
  "peerDependencies": {
@@ -42,5 +43,5 @@
42
43
  "publishConfig": {
43
44
  "access": "public"
44
45
  },
45
- "gitHead": "072f997a89b2060db44c7c18f664937e4d617be3"
46
+ "gitHead": "c97e0bd946a456f07010b6db9fe4b1afca93c44c"
46
47
  }
@@ -1,5 +0,0 @@
1
- import './index.css';
2
- var styles = {"animation-timeout":"magritte-animation-timeout___yd-SZ_4-1-35","animationTimeout":"magritte-animation-timeout___yd-SZ_4-1-35","css-variables-container":"magritte-css-variables-container___jBCr9_4-1-35","cssVariablesContainer":"magritte-css-variables-container___jBCr9_4-1-35","appear-animation":"magritte-appear-animation___P84Ln_4-1-35","appearAnimation":"magritte-appear-animation___P84Ln_4-1-35","disappear-animation":"magritte-disappear-animation___Putks_4-1-35","disappearAnimation":"magritte-disappear-animation___Putks_4-1-35","content":"magritte-content___1gAwP_4-1-35","overlay-background":"magritte-overlay-background___8Sd4V_4-1-35","overlayBackground":"magritte-overlay-background___8Sd4V_4-1-35","grabber-transition-animation":"magritte-grabber-transition-animation___s3Oh4_4-1-35","grabberTransitionAnimation":"magritte-grabber-transition-animation___s3Oh4_4-1-35","height-transition-animation":"magritte-height-transition-animation___xNprr_4-1-35","heightTransitionAnimation":"magritte-height-transition-animation___xNprr_4-1-35","footer":"magritte-footer___RWslT_4-1-35","height-transition-element":"magritte-height-transition-element___tyx84_4-1-35","heightTransitionElement":"magritte-height-transition-element___tyx84_4-1-35","close-by-swipe-animation":"magritte-close-by-swipe-animation___wdezY_4-1-35","closeBySwipeAnimation":"magritte-close-by-swipe-animation___wdezY_4-1-35","virtual-keyboard-animation":"magritte-virtual-keyboard-animation___vM9e-_4-1-35","virtualKeyboardAnimation":"magritte-virtual-keyboard-animation___vM9e-_4-1-35","overlay":"magritte-overlay___5a2U-_4-1-35","overlay_invisible":"magritte-overlay_invisible___-YFlP_4-1-35","overlayInvisible":"magritte-overlay_invisible___-YFlP_4-1-35","scroll-container":"magritte-scroll-container___4ngNY_4-1-35","scrollContainer":"magritte-scroll-container___4ngNY_4-1-35","scroll-container_no-scroll":"magritte-scroll-container_no-scroll___9BJP6_4-1-35","scrollContainerNoScroll":"magritte-scroll-container_no-scroll___9BJP6_4-1-35","fill":"magritte-fill___9eVpH_4-1-35","fill_full-screen":"magritte-fill_full-screen___HrIrL_4-1-35","fillFullScreen":"magritte-fill_full-screen___HrIrL_4-1-35","fill_half-screen":"magritte-fill_half-screen___phiVM_4-1-35","fillHalfScreen":"magritte-fill_half-screen___phiVM_4-1-35","content_full-screen":"magritte-content_full-screen___2SFaO_4-1-35","contentFullScreen":"magritte-content_full-screen___2SFaO_4-1-35","visual-container":"magritte-visual-container___-VSuY_4-1-35","visualContainer":"magritte-visual-container___-VSuY_4-1-35","header":"magritte-header___5mMtj_4-1-35","main":"magritte-main___tvGXi_4-1-35","main_with-paddings":"magritte-main_with-paddings___o8gOS_4-1-35","mainWithPaddings":"magritte-main_with-paddings___o8gOS_4-1-35","main_without-header":"magritte-main_without-header___ra86o_4-1-35","mainWithoutHeader":"magritte-main_without-header___ra86o_4-1-35","footer_swipe-in-progress":"magritte-footer_swipe-in-progress___h6f9r_4-1-35","footerSwipeInProgress":"magritte-footer_swipe-in-progress___h6f9r_4-1-35","footer-with-padding":"magritte-footer-with-padding___KwkhC_4-1-35","footerWithPadding":"magritte-footer-with-padding___KwkhC_4-1-35","grabber":"magritte-grabber___A7SB-_4-1-35","grabber_invisible":"magritte-grabber_invisible___Y-Iwm_4-1-35","grabberInvisible":"magritte-grabber_invisible___Y-Iwm_4-1-35","grabber_sticky":"magritte-grabber_sticky___-DE-B_4-1-35","grabberSticky":"magritte-grabber_sticky___-DE-B_4-1-35","grabber_fake-sticky":"magritte-grabber_fake-sticky___DKj2G_4-1-35","grabberFakeSticky":"magritte-grabber_fake-sticky___DKj2G_4-1-35","grabber_fixed":"magritte-grabber_fixed___qv9BU_4-1-35","grabberFixed":"magritte-grabber_fixed___qv9BU_4-1-35","grabber_sticky-inside":"magritte-grabber_sticky-inside___6vQtN_4-1-35","grabberStickyInside":"magritte-grabber_sticky-inside___6vQtN_4-1-35","content-overlay":"magritte-content-overlay___HAyzL_4-1-35","contentOverlay":"magritte-content-overlay___HAyzL_4-1-35"};
3
-
4
- export { styles as s };
5
- //# sourceMappingURL=bottom-sheet-0_1ZAsvk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bottom-sheet-0_1ZAsvk.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}