@hh.ru/magritte-ui-snackbar 4.2.0 → 4.3.1

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.
@@ -2,7 +2,7 @@ import './index.css';
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
3
  import { useContext, useCallback, Fragment } from 'react';
4
4
  import { SnackbarContext } from './context.js';
5
- import { s as styles } from './snackbar-Dtav5CFd.js';
5
+ import { s as styles } from './snackbar-BQTpIxXX.js';
6
6
 
7
7
  const SnackbarContainer = ({ children, id, ...props }) => {
8
8
  const context = useContext(SnackbarContext);
@@ -5,7 +5,7 @@ import { createPortal } from 'react-dom';
5
5
  import { SnackbarRenderer } from './SnackbarRenderer.js';
6
6
  import { SnackbarContext } from './context.js';
7
7
  import { SnackbarTransitionName } from './types.js';
8
- import { s as styles } from './snackbar-Dtav5CFd.js';
8
+ import { s as styles } from './snackbar-BQTpIxXX.js';
9
9
  import 'react-transition-group';
10
10
  import 'classnames';
11
11
  import '@hh.ru/magritte-common-func-utils';
@@ -16,7 +16,7 @@ import { Link } from '@hh.ru/magritte-ui-link';
16
16
  import { SnackbarTransitionName, SnackbarLayout } from './types.js';
17
17
  import { useAriaSnackbar } from './useAriaSnackbar.js';
18
18
  import { useTimer, Timer } from '@hh.ru/magritte-ui-timer';
19
- import { s as styles } from './snackbar-Dtav5CFd.js';
19
+ import { s as styles } from './snackbar-BQTpIxXX.js';
20
20
 
21
21
  const CLASS_NAMES = {
22
22
  [SnackbarTransitionName.Show]: {
@@ -68,7 +68,7 @@ const SnackbarRenderer = ({ actionLabel, addon, align = 'bottom', animateOut, au
68
68
  if (textRef.current && resizableContentRef.current) {
69
69
  const metrics = resizableContentRef.current?.getBoundingClientRect();
70
70
  const style = window.getComputedStyle(textRef.current);
71
- const isVerticalLayout = textRef.current.getBoundingClientRect().height > parseInt(style.lineHeight, 10);
71
+ const isVerticalLayout = textRef.current.getBoundingClientRect().height - parseInt(style.lineHeight, 10) > 1;
72
72
  if (previousMetrics.current !== null) {
73
73
  const increaseScreenSize = metrics.width > previousMetrics.current.width;
74
74
  setLayout((layout) => {
@@ -1 +1 @@
1
- {"version":3,"file":"SnackbarRenderer.js","sources":["../src/SnackbarRenderer.tsx"],"sourcesContent":["import { FC, useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport classnames from 'classnames';\n\nimport { useDebounce } from '@hh.ru/magritte-common-func-utils';\nimport { useEscapeToClose } from '@hh.ru/magritte-common-keyboard';\nimport { useResize } from '@hh.ru/magritte-common-resize';\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport { SwipeEventHandler, SwipeThreshold, useSwipeHandlers } from '@hh.ru/magritte-common-use-swipe';\nimport { InternalLayerName } from '@hh.ru/magritte-internal-layer-name';\nimport { Action } from '@hh.ru/magritte-ui-action';\nimport { CrossOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';\nimport { Layer } from '@hh.ru/magritte-ui-layer';\nimport { Link } from '@hh.ru/magritte-ui-link';\nimport { SnackbarLayout, SnackbarRendererProps, SnackbarTransitionName } from '@hh.ru/magritte-ui-snackbar/types';\nimport { useAriaSnackbar } from '@hh.ru/magritte-ui-snackbar/useAriaSnackbar';\nimport { Timer, useTimer } from '@hh.ru/magritte-ui-timer';\n\nimport styles from './snackbar.less';\n\nconst CLASS_NAMES = {\n [SnackbarTransitionName.Show]: {\n appear: styles.appear,\n appearActive: styles['appear-active'],\n appearDone: styles['appear-done'],\n },\n [SnackbarTransitionName.Hide]: {\n exit: styles.exit,\n exitActive: styles['exit-active'],\n exitDone: styles['exit-done'],\n },\n [SnackbarTransitionName.Autohide]: {\n exit: styles.exit,\n exitActive: styles['exit-active_autohide'],\n exitDone: styles['exit-done'],\n },\n [SnackbarTransitionName.Replace]: {\n appear: styles.appear,\n appearDone: styles['appear-done'],\n },\n [SnackbarTransitionName.RemoveImmediately]: {},\n};\n\nconst DEFAULT_AUTOHIDE_TIME_MS = 6000;\n\nexport const SnackbarRenderer: FC<SnackbarRendererProps> = ({\n actionLabel,\n addon,\n align = 'bottom',\n animateOut,\n autohideTime = DEFAULT_AUTOHIDE_TIME_MS,\n children,\n containerId,\n isShown,\n onAction,\n onClose,\n onShown,\n showClose,\n showTimer,\n timeout,\n transition,\n 'aria-label': ariaLabel,\n 'aria-label-close': ariaLabelClose,\n role = 'status',\n ...props\n}) => {\n const actionFunc = useCallback(() => onAction?.(), [onAction]);\n const [hasFocus, setHasFocus] = useState(false);\n const [hasHover, setHasHover] = useState(false);\n const hasTouchSupportRef = useRef(false);\n const [layout, setLayout] = useState<SnackbarLayout>(SnackbarLayout.Horizontal);\n const autohideFunc = useCallback(() => animateOut(SnackbarTransitionName.Autohide), [animateOut]);\n const closeFunc = useCallback(() => animateOut(SnackbarTransitionName.Hide), [animateOut]);\n const previousMetrics = useRef<DOMRect | null>(null);\n const ariaAttributes = useAriaSnackbar({ role, hasAction: !!actionLabel, 'aria-label': ariaLabel });\n const textRef = useRef<HTMLDivElement>(null);\n const resizableContentRef = useRef<HTMLDivElement>(null);\n const visible = transition === SnackbarTransitionName.Show || transition === SnackbarTransitionName.Replace;\n const maxDistanceSqRef = useRef({ nearestSide: Number.POSITIVE_INFINITY, farSide: Number.POSITIVE_INFINITY });\n const swipeThresholdXRef = useRef<SwipeThreshold | null>(null);\n const swipeThresholdYRef = useRef<SwipeThreshold | null>(null);\n\n const removeImmediately = useCallback(() => {\n animateOut(SnackbarTransitionName.RemoveImmediately);\n onClose?.();\n }, [animateOut, onClose]);\n\n const snackbarRef = useRef<HTMLDivElement>(null);\n const bindEscapeToClose = useEscapeToClose(closeFunc);\n const snackbarRefMultiplexer = useMultipleRefs(snackbarRef, bindEscapeToClose);\n\n const calculateLayout = useCallback(() => {\n if (textRef.current && resizableContentRef.current) {\n const metrics = resizableContentRef.current?.getBoundingClientRect();\n const style = window.getComputedStyle(textRef.current);\n const isVerticalLayout = textRef.current.getBoundingClientRect().height > parseInt(style.lineHeight, 10);\n\n if (previousMetrics.current !== null) {\n const increaseScreenSize = metrics.width > previousMetrics.current.width;\n\n setLayout((layout) => {\n /* Уменьшаем размер экрана и если нужно переключиться в вертикальный лейаут */\n if (!increaseScreenSize && isVerticalLayout && layout === SnackbarLayout.Horizontal) {\n return SnackbarLayout.Vertical;\n }\n\n /* Увеличиваем размер экрана и если нужно переключиться в вертикальный лейаут */\n if (increaseScreenSize && isVerticalLayout && layout === SnackbarLayout.Horizontal) {\n return SnackbarLayout.Vertical;\n }\n\n /* Кейсы когда уменьшаем или увеличиваем размер экрана и нужно переключиться\n * с вертикального на горизонтальный лейаут скипаем, потому как доступного места для текста\n * меньше и может оказаться что текст будет в 2 строки и надо\n * снова переключаться на вертикальный лейаут. */\n return layout;\n });\n } else {\n setLayout(isVerticalLayout ? SnackbarLayout.Vertical : SnackbarLayout.Horizontal);\n }\n previousMetrics.current = resizableContentRef.current?.getBoundingClientRect();\n }\n }, []);\n\n useLayoutEffect(calculateLayout, [calculateLayout]);\n\n useResize(useDebounce(calculateLayout, 64));\n\n useTimer(\n !!autohideTime && !showTimer ? autohideTime : -1,\n (callable) => {\n const timeoutId = setTimeout(callable, 50);\n return () => clearTimeout(timeoutId);\n },\n (remaining) => {\n remaining < 0 && autohideFunc();\n },\n hasFocus || hasHover\n );\n\n useEffect(() => void (!!actionLabel && snackbarRef.current?.focus?.()), [actionLabel]);\n\n useEffect(() => {\n if (snackbarRef.current !== null) {\n const maxDistanceX = snackbarRef.current.clientWidth * 0.66;\n const maxDistanceNearestY = snackbarRef.current.clientHeight * 0.5;\n const maxDistanceFarY = snackbarRef.current.clientHeight;\n maxDistanceSqRef.current.nearestSide = Math.pow(maxDistanceX, 2) + Math.pow(maxDistanceNearestY, 2);\n maxDistanceSqRef.current.farSide = Math.pow(maxDistanceX, 2) + Math.pow(maxDistanceFarY, 2);\n swipeThresholdXRef.current = { minDelta: -maxDistanceX, maxDelta: maxDistanceX };\n swipeThresholdYRef.current =\n align === 'top'\n ? { minDelta: -maxDistanceNearestY, maxDelta: maxDistanceFarY }\n : { minDelta: -maxDistanceFarY, maxDelta: maxDistanceNearestY };\n }\n // при смене layout может поменяться clientHeight\n }, [align, visible, layout]);\n\n const handleSwipeMove: SwipeEventHandler = useCallback(\n (event) => {\n if (snackbarRef.current !== null) {\n // насколько прозрачным нужно сделать снекбар с учетом расстояния от начальной позиции\n let maxDistanceSq = maxDistanceSqRef.current.nearestSide;\n\n // определяем был ли свайп в дальнюю сторону экрана по вертикали\n if ((align === 'top' && event.distanceY > 0) || (align === 'bottom' && event.distanceY < 0)) {\n maxDistanceSq = maxDistanceSqRef.current.farSide;\n }\n\n const fadeDistanceSq = Math.pow(event.distanceX, 2) + Math.pow(event.distanceY, 2);\n snackbarRef.current.style.opacity = `${1 - fadeDistanceSq / maxDistanceSq}`;\n snackbarRef.current.style.transform = `translate(${event.distanceX}px, ${event.distanceY}px)`;\n }\n },\n [align]\n );\n\n const handleSwipeEnd: SwipeEventHandler = useCallback(() => {\n if (snackbarRef.current !== null) {\n snackbarRef.current.style.opacity = `0`;\n }\n closeFunc();\n }, [closeFunc]);\n\n const handleSwipeCancel: SwipeEventHandler = useCallback(() => {\n if (snackbarRef.current !== null) {\n snackbarRef.current.style.opacity = `1`;\n snackbarRef.current.style.transform = ``;\n }\n }, []);\n\n const swipeHandlers = useSwipeHandlers({\n thresholdXRef: swipeThresholdXRef,\n thresholdYRef: swipeThresholdYRef,\n onSwipeMove: handleSwipeMove,\n onSwipeEnd: handleSwipeEnd,\n onSwipeCancel: handleSwipeCancel,\n });\n\n useEffect(() => {\n const snackbar = snackbarRef.current;\n if (!snackbar) {\n return void 0;\n }\n\n const handleTouchStart = (event: TouchEvent) => {\n event.stopPropagation();\n hasTouchSupportRef.current = true;\n setHasHover(true);\n swipeHandlers.onTouchStart(event);\n };\n\n const handleTouchMove = (event: TouchEvent) => {\n event.preventDefault();\n event.stopPropagation();\n swipeHandlers.onTouchMove(event);\n };\n\n const handleTouchEnd = (event: TouchEvent) => {\n setHasHover(false);\n swipeHandlers.onTouchEnd(event);\n };\n\n const handleTouchCancel = (event: TouchEvent) => {\n setHasHover(false);\n swipeHandlers.onTouchCancel(event);\n };\n\n snackbar.addEventListener('touchstart', handleTouchStart);\n snackbar.addEventListener('touchmove', handleTouchMove, { passive: false });\n snackbar.addEventListener('touchend', handleTouchEnd);\n snackbar.addEventListener('touchcancel', handleTouchCancel);\n\n return () => {\n snackbar.removeEventListener('touchstart', handleTouchStart);\n snackbar.removeEventListener('touchmove', handleTouchMove);\n snackbar.removeEventListener('touchend', handleTouchEnd);\n snackbar.removeEventListener('touchcancel', handleTouchCancel);\n };\n }, [swipeHandlers]);\n\n return (\n <CSSTransition\n appear\n classNames={CLASS_NAMES[transition]}\n in={visible}\n nodeRef={snackbarRef}\n onEntered={onShown}\n onExited={removeImmediately}\n timeout={timeout}\n >\n <Layer layer={InternalLayerName.Snackbar}>\n <div\n {...props}\n {...ariaAttributes}\n className={classnames(styles.snackbar, {\n [styles[`snackbar_align-${align}`]]: align,\n [styles.snackbarInBody]: !containerId,\n [styles.snackbarLayoutVertical]: layout === SnackbarLayout.Vertical,\n [styles.snackbarLayoutHorizontal]: layout === SnackbarLayout.Horizontal,\n })}\n ref={snackbarRefMultiplexer}\n onFocus={(event) => {\n if (event.target !== snackbarRef.current && !hasTouchSupportRef.current) {\n setHasFocus(true);\n }\n }}\n onBlur={() => !hasTouchSupportRef.current && setHasFocus(false)}\n onMouseEnter={() => setHasHover(true)}\n onMouseLeave={() => setHasHover(false)}\n >\n <div className={styles.snackbarContent}>\n {!!addon && (\n <div className={styles.snackbarAddon} data-qa=\"snackbar-addon\">\n {addon}\n </div>\n )}\n {!!autohideTime && showTimer && (\n <div className={styles.snackbarAddon} data-qa=\"snackbar-timer\">\n <Timer timeout={autohideTime} pause={hasFocus || hasHover} callback={autohideFunc} />\n </div>\n )}\n <div className={styles.snackbarTextAndAction} ref={resizableContentRef}>\n <div className={styles.snackbarText} ref={textRef} id=\"dialog-description\">\n {children}\n </div>\n {!!actionLabel && (\n <Link\n data-qa=\"snackbar-user-action\"\n aria-label={actionLabel}\n Element=\"button\"\n type=\"button\"\n onClick={actionFunc}\n typography=\"subtitle-1-semibold\"\n style=\"contrast\"\n >\n {actionLabel}\n </Link>\n )}\n </div>\n {showClose && (\n <div className={styles.snackbarClose}>\n <Action\n data-qa=\"snackbar-close-action\"\n tabIndex={actionLabel ? 0 : -1}\n aria-label={\n actionLabel && typeof ariaLabelClose === 'string' ? ariaLabelClose : undefined\n }\n icon={CrossOutlinedSize24}\n mode=\"secondary\"\n onClick={closeFunc}\n style=\"contrast\"\n />\n </div>\n )}\n </div>\n </div>\n </Layer>\n </CSSTransition>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"SnackbarRenderer.js","sources":["../src/SnackbarRenderer.tsx"],"sourcesContent":["import { FC, useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport classnames from 'classnames';\n\nimport { useDebounce } from '@hh.ru/magritte-common-func-utils';\nimport { useEscapeToClose } from '@hh.ru/magritte-common-keyboard';\nimport { useResize } from '@hh.ru/magritte-common-resize';\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport { SwipeEventHandler, SwipeThreshold, useSwipeHandlers } from '@hh.ru/magritte-common-use-swipe';\nimport { InternalLayerName } from '@hh.ru/magritte-internal-layer-name';\nimport { Action } from '@hh.ru/magritte-ui-action';\nimport { CrossOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';\nimport { Layer } from '@hh.ru/magritte-ui-layer';\nimport { Link } from '@hh.ru/magritte-ui-link';\nimport { SnackbarLayout, SnackbarRendererProps, SnackbarTransitionName } from '@hh.ru/magritte-ui-snackbar/types';\nimport { useAriaSnackbar } from '@hh.ru/magritte-ui-snackbar/useAriaSnackbar';\nimport { Timer, useTimer } from '@hh.ru/magritte-ui-timer';\n\nimport styles from './snackbar.less';\n\nconst CLASS_NAMES = {\n [SnackbarTransitionName.Show]: {\n appear: styles.appear,\n appearActive: styles['appear-active'],\n appearDone: styles['appear-done'],\n },\n [SnackbarTransitionName.Hide]: {\n exit: styles.exit,\n exitActive: styles['exit-active'],\n exitDone: styles['exit-done'],\n },\n [SnackbarTransitionName.Autohide]: {\n exit: styles.exit,\n exitActive: styles['exit-active_autohide'],\n exitDone: styles['exit-done'],\n },\n [SnackbarTransitionName.Replace]: {\n appear: styles.appear,\n appearDone: styles['appear-done'],\n },\n [SnackbarTransitionName.RemoveImmediately]: {},\n};\n\nconst DEFAULT_AUTOHIDE_TIME_MS = 6000;\n\nexport const SnackbarRenderer: FC<SnackbarRendererProps> = ({\n actionLabel,\n addon,\n align = 'bottom',\n animateOut,\n autohideTime = DEFAULT_AUTOHIDE_TIME_MS,\n children,\n containerId,\n isShown,\n onAction,\n onClose,\n onShown,\n showClose,\n showTimer,\n timeout,\n transition,\n 'aria-label': ariaLabel,\n 'aria-label-close': ariaLabelClose,\n role = 'status',\n ...props\n}) => {\n const actionFunc = useCallback(() => onAction?.(), [onAction]);\n const [hasFocus, setHasFocus] = useState(false);\n const [hasHover, setHasHover] = useState(false);\n const hasTouchSupportRef = useRef(false);\n const [layout, setLayout] = useState<SnackbarLayout>(SnackbarLayout.Horizontal);\n const autohideFunc = useCallback(() => animateOut(SnackbarTransitionName.Autohide), [animateOut]);\n const closeFunc = useCallback(() => animateOut(SnackbarTransitionName.Hide), [animateOut]);\n const previousMetrics = useRef<DOMRect | null>(null);\n const ariaAttributes = useAriaSnackbar({ role, hasAction: !!actionLabel, 'aria-label': ariaLabel });\n const textRef = useRef<HTMLDivElement>(null);\n const resizableContentRef = useRef<HTMLDivElement>(null);\n const visible = transition === SnackbarTransitionName.Show || transition === SnackbarTransitionName.Replace;\n const maxDistanceSqRef = useRef({ nearestSide: Number.POSITIVE_INFINITY, farSide: Number.POSITIVE_INFINITY });\n const swipeThresholdXRef = useRef<SwipeThreshold | null>(null);\n const swipeThresholdYRef = useRef<SwipeThreshold | null>(null);\n\n const removeImmediately = useCallback(() => {\n animateOut(SnackbarTransitionName.RemoveImmediately);\n onClose?.();\n }, [animateOut, onClose]);\n\n const snackbarRef = useRef<HTMLDivElement>(null);\n const bindEscapeToClose = useEscapeToClose(closeFunc);\n const snackbarRefMultiplexer = useMultipleRefs(snackbarRef, bindEscapeToClose);\n\n const calculateLayout = useCallback(() => {\n if (textRef.current && resizableContentRef.current) {\n const metrics = resizableContentRef.current?.getBoundingClientRect();\n const style = window.getComputedStyle(textRef.current);\n const isVerticalLayout =\n textRef.current.getBoundingClientRect().height - parseInt(style.lineHeight, 10) > 1;\n\n if (previousMetrics.current !== null) {\n const increaseScreenSize = metrics.width > previousMetrics.current.width;\n\n setLayout((layout) => {\n /* Уменьшаем размер экрана и если нужно переключиться в вертикальный лейаут */\n if (!increaseScreenSize && isVerticalLayout && layout === SnackbarLayout.Horizontal) {\n return SnackbarLayout.Vertical;\n }\n\n /* Увеличиваем размер экрана и если нужно переключиться в вертикальный лейаут */\n if (increaseScreenSize && isVerticalLayout && layout === SnackbarLayout.Horizontal) {\n return SnackbarLayout.Vertical;\n }\n\n /* Кейсы когда уменьшаем или увеличиваем размер экрана и нужно переключиться\n * с вертикального на горизонтальный лейаут скипаем, потому как доступного места для текста\n * меньше и может оказаться что текст будет в 2 строки и надо\n * снова переключаться на вертикальный лейаут. */\n return layout;\n });\n } else {\n setLayout(isVerticalLayout ? SnackbarLayout.Vertical : SnackbarLayout.Horizontal);\n }\n previousMetrics.current = resizableContentRef.current?.getBoundingClientRect();\n }\n }, []);\n\n useLayoutEffect(calculateLayout, [calculateLayout]);\n\n useResize(useDebounce(calculateLayout, 64));\n\n useTimer(\n !!autohideTime && !showTimer ? autohideTime : -1,\n (callable) => {\n const timeoutId = setTimeout(callable, 50);\n return () => clearTimeout(timeoutId);\n },\n (remaining) => {\n remaining < 0 && autohideFunc();\n },\n hasFocus || hasHover\n );\n\n useEffect(() => void (!!actionLabel && snackbarRef.current?.focus?.()), [actionLabel]);\n\n useEffect(() => {\n if (snackbarRef.current !== null) {\n const maxDistanceX = snackbarRef.current.clientWidth * 0.66;\n const maxDistanceNearestY = snackbarRef.current.clientHeight * 0.5;\n const maxDistanceFarY = snackbarRef.current.clientHeight;\n maxDistanceSqRef.current.nearestSide = Math.pow(maxDistanceX, 2) + Math.pow(maxDistanceNearestY, 2);\n maxDistanceSqRef.current.farSide = Math.pow(maxDistanceX, 2) + Math.pow(maxDistanceFarY, 2);\n swipeThresholdXRef.current = { minDelta: -maxDistanceX, maxDelta: maxDistanceX };\n swipeThresholdYRef.current =\n align === 'top'\n ? { minDelta: -maxDistanceNearestY, maxDelta: maxDistanceFarY }\n : { minDelta: -maxDistanceFarY, maxDelta: maxDistanceNearestY };\n }\n // при смене layout может поменяться clientHeight\n }, [align, visible, layout]);\n\n const handleSwipeMove: SwipeEventHandler = useCallback(\n (event) => {\n if (snackbarRef.current !== null) {\n // насколько прозрачным нужно сделать снекбар с учетом расстояния от начальной позиции\n let maxDistanceSq = maxDistanceSqRef.current.nearestSide;\n\n // определяем был ли свайп в дальнюю сторону экрана по вертикали\n if ((align === 'top' && event.distanceY > 0) || (align === 'bottom' && event.distanceY < 0)) {\n maxDistanceSq = maxDistanceSqRef.current.farSide;\n }\n\n const fadeDistanceSq = Math.pow(event.distanceX, 2) + Math.pow(event.distanceY, 2);\n snackbarRef.current.style.opacity = `${1 - fadeDistanceSq / maxDistanceSq}`;\n snackbarRef.current.style.transform = `translate(${event.distanceX}px, ${event.distanceY}px)`;\n }\n },\n [align]\n );\n\n const handleSwipeEnd: SwipeEventHandler = useCallback(() => {\n if (snackbarRef.current !== null) {\n snackbarRef.current.style.opacity = `0`;\n }\n closeFunc();\n }, [closeFunc]);\n\n const handleSwipeCancel: SwipeEventHandler = useCallback(() => {\n if (snackbarRef.current !== null) {\n snackbarRef.current.style.opacity = `1`;\n snackbarRef.current.style.transform = ``;\n }\n }, []);\n\n const swipeHandlers = useSwipeHandlers({\n thresholdXRef: swipeThresholdXRef,\n thresholdYRef: swipeThresholdYRef,\n onSwipeMove: handleSwipeMove,\n onSwipeEnd: handleSwipeEnd,\n onSwipeCancel: handleSwipeCancel,\n });\n\n useEffect(() => {\n const snackbar = snackbarRef.current;\n if (!snackbar) {\n return void 0;\n }\n\n const handleTouchStart = (event: TouchEvent) => {\n event.stopPropagation();\n hasTouchSupportRef.current = true;\n setHasHover(true);\n swipeHandlers.onTouchStart(event);\n };\n\n const handleTouchMove = (event: TouchEvent) => {\n event.preventDefault();\n event.stopPropagation();\n swipeHandlers.onTouchMove(event);\n };\n\n const handleTouchEnd = (event: TouchEvent) => {\n setHasHover(false);\n swipeHandlers.onTouchEnd(event);\n };\n\n const handleTouchCancel = (event: TouchEvent) => {\n setHasHover(false);\n swipeHandlers.onTouchCancel(event);\n };\n\n snackbar.addEventListener('touchstart', handleTouchStart);\n snackbar.addEventListener('touchmove', handleTouchMove, { passive: false });\n snackbar.addEventListener('touchend', handleTouchEnd);\n snackbar.addEventListener('touchcancel', handleTouchCancel);\n\n return () => {\n snackbar.removeEventListener('touchstart', handleTouchStart);\n snackbar.removeEventListener('touchmove', handleTouchMove);\n snackbar.removeEventListener('touchend', handleTouchEnd);\n snackbar.removeEventListener('touchcancel', handleTouchCancel);\n };\n }, [swipeHandlers]);\n\n return (\n <CSSTransition\n appear\n classNames={CLASS_NAMES[transition]}\n in={visible}\n nodeRef={snackbarRef}\n onEntered={onShown}\n onExited={removeImmediately}\n timeout={timeout}\n >\n <Layer layer={InternalLayerName.Snackbar}>\n <div\n {...props}\n {...ariaAttributes}\n className={classnames(styles.snackbar, {\n [styles[`snackbar_align-${align}`]]: align,\n [styles.snackbarInBody]: !containerId,\n [styles.snackbarLayoutVertical]: layout === SnackbarLayout.Vertical,\n [styles.snackbarLayoutHorizontal]: layout === SnackbarLayout.Horizontal,\n })}\n ref={snackbarRefMultiplexer}\n onFocus={(event) => {\n if (event.target !== snackbarRef.current && !hasTouchSupportRef.current) {\n setHasFocus(true);\n }\n }}\n onBlur={() => !hasTouchSupportRef.current && setHasFocus(false)}\n onMouseEnter={() => setHasHover(true)}\n onMouseLeave={() => setHasHover(false)}\n >\n <div className={styles.snackbarContent}>\n {!!addon && (\n <div className={styles.snackbarAddon} data-qa=\"snackbar-addon\">\n {addon}\n </div>\n )}\n {!!autohideTime && showTimer && (\n <div className={styles.snackbarAddon} data-qa=\"snackbar-timer\">\n <Timer timeout={autohideTime} pause={hasFocus || hasHover} callback={autohideFunc} />\n </div>\n )}\n <div className={styles.snackbarTextAndAction} ref={resizableContentRef}>\n <div className={styles.snackbarText} ref={textRef} id=\"dialog-description\">\n {children}\n </div>\n {!!actionLabel && (\n <Link\n data-qa=\"snackbar-user-action\"\n aria-label={actionLabel}\n Element=\"button\"\n type=\"button\"\n onClick={actionFunc}\n typography=\"subtitle-1-semibold\"\n style=\"contrast\"\n >\n {actionLabel}\n </Link>\n )}\n </div>\n {showClose && (\n <div className={styles.snackbarClose}>\n <Action\n data-qa=\"snackbar-close-action\"\n tabIndex={actionLabel ? 0 : -1}\n aria-label={\n actionLabel && typeof ariaLabelClose === 'string' ? ariaLabelClose : undefined\n }\n icon={CrossOutlinedSize24}\n mode=\"secondary\"\n onClick={closeFunc}\n style=\"contrast\"\n />\n </div>\n )}\n </div>\n </div>\n </Layer>\n </CSSTransition>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
package/index.css CHANGED
@@ -556,13 +556,13 @@
556
556
  --magritte-typography-_custom-5-italic-text-transform-v20-0-1:none;
557
557
  --magritte-typography-_custom-5-italic-text-decoration-v20-0-1:none;
558
558
  }
559
- .magritte-snackbar-container___SeRql_4-2-0{
559
+ .magritte-snackbar-container___SeRql_4-3-1{
560
560
  pointer-events:none;
561
561
  position:absolute;
562
562
  inset:0;
563
563
  }
564
- .magritte-snackbar-animation-timeout___EQLvG_4-2-0,
565
- .magritte-snackbar___jgq4H_4-2-0{
564
+ .magritte-snackbar-animation-timeout___EQLvG_4-3-1,
565
+ .magritte-snackbar___jgq4H_4-3-1{
566
566
  outline:none;
567
567
  --show-animation-duration:var(--magritte-semantic-animation-ease-in-out-tiger-300-duration-v20-0-1);
568
568
  --hide-animation-duration:var(--magritte-semantic-animation-ease-in-out-tiger-100-duration-v20-0-1);
@@ -575,8 +575,8 @@
575
575
  --magritte-color-component-action-icon-secondary-disabled-override:var(--magritte-color-component-snackbar-text-state-action-disabled-v20-0-1);
576
576
  }
577
577
  @media (prefers-reduced-motion){
578
- .magritte-snackbar-animation-timeout___EQLvG_4-2-0,
579
- .magritte-snackbar___jgq4H_4-2-0{
578
+ .magritte-snackbar-animation-timeout___EQLvG_4-3-1,
579
+ .magritte-snackbar___jgq4H_4-3-1{
580
580
  --show-animation-duration:0;
581
581
  --hide-animation-duration:0;
582
582
  --autohide-animation-duration:0;
@@ -584,88 +584,88 @@
584
584
  --removeImmediately-animation-duration:0;
585
585
  }
586
586
  }
587
- .magritte-snackbar-animation-timeout___EQLvG_4-2-0{
587
+ .magritte-snackbar-animation-timeout___EQLvG_4-3-1{
588
588
  display:none;
589
589
  }
590
- .magritte-snackbar___jgq4H_4-2-0{
590
+ .magritte-snackbar___jgq4H_4-3-1{
591
591
  background:var(--magritte-color-component-snackbar-background-content-v20-0-1);
592
592
  color:var(--magritte-color-component-snackbar-text-content-v20-0-1);
593
593
  box-shadow:inset 0 0 0 1px var(--magritte-color-component-snackbar-stroke-content-v20-0-1);
594
594
  position:absolute;
595
595
  pointer-events:auto;
596
596
  }
597
- .magritte-snackbar_align-top___WWWbk_4-2-0{
597
+ .magritte-snackbar_align-top___WWWbk_4-3-1{
598
598
  inset:16px 16px auto;
599
599
  }
600
600
  @media (min-width: 1020px){
601
- body.magritte-old-layout .magritte-snackbar_align-top___WWWbk_4-2-0{
601
+ body.magritte-old-layout .magritte-snackbar_align-top___WWWbk_4-3-1{
602
602
  inset:0 0 auto;
603
603
  }
604
604
  }
605
605
  @media (min-width: 1024px){
606
- body:not(.magritte-old-layout) .magritte-snackbar_align-top___WWWbk_4-2-0{
606
+ body:not(.magritte-old-layout) .magritte-snackbar_align-top___WWWbk_4-3-1{
607
607
  inset:0 0 auto;
608
608
  }
609
609
  }
610
- .magritte-snackbar_align-bottom___tCBBP_4-2-0{
610
+ .magritte-snackbar_align-bottom___tCBBP_4-3-1{
611
611
  inset:auto 16px 16px;
612
612
  }
613
613
  @media (min-width: 1020px){
614
- body.magritte-old-layout .magritte-snackbar_align-bottom___tCBBP_4-2-0{
614
+ body.magritte-old-layout .magritte-snackbar_align-bottom___tCBBP_4-3-1{
615
615
  inset:auto 0 0;
616
616
  }
617
617
  }
618
618
  @media (min-width: 1024px){
619
- body:not(.magritte-old-layout) .magritte-snackbar_align-bottom___tCBBP_4-2-0{
619
+ body:not(.magritte-old-layout) .magritte-snackbar_align-bottom___tCBBP_4-3-1{
620
620
  inset:auto 0 0;
621
621
  }
622
622
  }
623
- .magritte-snackbar-in-body___Zer4o_4-2-0{
623
+ .magritte-snackbar-in-body___Zer4o_4-3-1{
624
624
  position:fixed;
625
625
  }
626
626
  @media (min-width: 1020px){
627
- body.magritte-old-layout .magritte-snackbar-in-body___Zer4o_4-2-0{
627
+ body.magritte-old-layout .magritte-snackbar-in-body___Zer4o_4-3-1{
628
628
  box-sizing:border-box;
629
629
  margin:auto;
630
630
  max-width:600px;
631
631
  }
632
632
  }
633
633
  @media (min-width: 1024px){
634
- body:not(.magritte-old-layout) .magritte-snackbar-in-body___Zer4o_4-2-0{
634
+ body:not(.magritte-old-layout) .magritte-snackbar-in-body___Zer4o_4-3-1{
635
635
  box-sizing:border-box;
636
636
  margin:auto;
637
637
  max-width:600px;
638
638
  }
639
639
  }
640
640
  @media (min-width: 1020px){
641
- body.magritte-old-layout .magritte-snackbar-in-body___Zer4o_4-2-0.magritte-snackbar_align-top___WWWbk_4-2-0{
641
+ body.magritte-old-layout .magritte-snackbar-in-body___Zer4o_4-3-1.magritte-snackbar_align-top___WWWbk_4-3-1{
642
642
  inset:48px 16px auto 16px;
643
643
  }
644
644
  }
645
645
  @media (min-width: 1024px){
646
- body:not(.magritte-old-layout) .magritte-snackbar-in-body___Zer4o_4-2-0.magritte-snackbar_align-top___WWWbk_4-2-0{
646
+ body:not(.magritte-old-layout) .magritte-snackbar-in-body___Zer4o_4-3-1.magritte-snackbar_align-top___WWWbk_4-3-1{
647
647
  inset:48px 16px auto 16px;
648
648
  }
649
649
  }
650
650
  @media (min-width: 1020px){
651
- body.magritte-old-layout .magritte-snackbar-in-body___Zer4o_4-2-0.magritte-snackbar_align-bottom___tCBBP_4-2-0{
651
+ body.magritte-old-layout .magritte-snackbar-in-body___Zer4o_4-3-1.magritte-snackbar_align-bottom___tCBBP_4-3-1{
652
652
  inset:auto 16px 48px 16px;
653
653
  }
654
654
  }
655
655
  @media (min-width: 1024px){
656
- body:not(.magritte-old-layout) .magritte-snackbar-in-body___Zer4o_4-2-0.magritte-snackbar_align-bottom___tCBBP_4-2-0{
656
+ body:not(.magritte-old-layout) .magritte-snackbar-in-body___Zer4o_4-3-1.magritte-snackbar_align-bottom___tCBBP_4-3-1{
657
657
  inset:auto 16px 48px 16px;
658
658
  }
659
659
  }
660
- .magritte-snackbar-content___MlP5J_4-2-0{
660
+ .magritte-snackbar-content___MlP5J_4-3-1{
661
661
  display:flex;
662
662
  }
663
- .magritte-snackbar-addon___-eJn7_4-2-0{
663
+ .magritte-snackbar-addon___-eJn7_4-3-1{
664
664
  margin-right:12px;
665
665
  width:24px;
666
666
  height:24px;
667
667
  }
668
- .magritte-snackbar-text___PCxnB_4-2-0{
668
+ .magritte-snackbar-text___PCxnB_4-3-1{
669
669
  font-family:var(--magritte-typography-label-2-regular-font-family-v20-0-1);
670
670
  font-weight:var(--magritte-typography-label-2-regular-font-weight-v20-0-1);
671
671
  line-height:var(--magritte-typography-label-2-regular-line-height-v20-0-1);
@@ -676,71 +676,71 @@
676
676
  text-decoration:var(--magritte-typography-label-2-regular-text-decoration-v20-0-1);
677
677
  margin-right:auto;
678
678
  }
679
- .magritte-snackbar-text-and-action___weegp_4-2-0{
679
+ .magritte-snackbar-text-and-action___weegp_4-3-1{
680
680
  display:flex;
681
681
  width:100%;
682
682
  }
683
- .magritte-snackbar-layout-horizontal___WrBPj_4-2-0{
683
+ .magritte-snackbar-layout-horizontal___WrBPj_4-3-1{
684
684
  padding:20px 24px;
685
685
  border-radius:calc((20px * 2 + calc(var(--magritte-core-line-heights-600-v20-0-1) * 1px)) / 2);
686
686
  }
687
- .magritte-snackbar-layout-horizontal___WrBPj_4-2-0 .magritte-snackbar-text___PCxnB_4-2-0{
687
+ .magritte-snackbar-layout-horizontal___WrBPj_4-3-1 .magritte-snackbar-text___PCxnB_4-3-1{
688
688
  line-height:calc(var(--magritte-core-line-heights-600-v20-0-1) * 1px);
689
689
  }
690
- .magritte-snackbar-layout-horizontal___WrBPj_4-2-0 .magritte-snackbar-content___MlP5J_4-2-0{
690
+ .magritte-snackbar-layout-horizontal___WrBPj_4-3-1 .magritte-snackbar-content___MlP5J_4-3-1{
691
691
  height:calc(var(--magritte-core-line-heights-600-v20-0-1) * 1px);
692
692
  align-items:center;
693
693
  }
694
- .magritte-snackbar-layout-horizontal___WrBPj_4-2-0 .magritte-snackbar-text-and-action___weegp_4-2-0{
694
+ .magritte-snackbar-layout-horizontal___WrBPj_4-3-1 .magritte-snackbar-text-and-action___weegp_4-3-1{
695
695
  align-items:center;
696
696
  gap:8px;
697
697
  flex-direction:row;
698
698
  justify-content:space-between;
699
699
  --magritte-ui-link-padding-override:11px;
700
700
  }
701
- .magritte-snackbar-layout-horizontal___WrBPj_4-2-0 .magritte-snackbar-close___U8YT5_4-2-0{
701
+ .magritte-snackbar-layout-horizontal___WrBPj_4-3-1 .magritte-snackbar-close___U8YT5_4-3-1{
702
702
  margin-left:4px;
703
703
  margin-right:-12px;
704
704
  }
705
- .magritte-snackbar-layout-vertical___aR52S_4-2-0{
705
+ .magritte-snackbar-layout-vertical___aR52S_4-3-1{
706
706
  border-radius:var(--magritte-static-border-radius-600-v20-0-1);
707
707
  padding:24px;
708
708
  }
709
- .magritte-snackbar-layout-vertical___aR52S_4-2-0 .magritte-snackbar-content___MlP5J_4-2-0{
709
+ .magritte-snackbar-layout-vertical___aR52S_4-3-1 .magritte-snackbar-content___MlP5J_4-3-1{
710
710
  height:auto;
711
711
  align-items:flex-start;
712
712
  }
713
- .magritte-snackbar-layout-vertical___aR52S_4-2-0 .magritte-snackbar-text-and-action___weegp_4-2-0{
713
+ .magritte-snackbar-layout-vertical___aR52S_4-3-1 .magritte-snackbar-text-and-action___weegp_4-3-1{
714
714
  gap:12px;
715
715
  flex-direction:column;
716
716
  align-items:flex-start;
717
717
  --magritte-ui-link-padding-override:3px;
718
718
  }
719
- .magritte-snackbar-layout-vertical___aR52S_4-2-0 .magritte-snackbar-close___U8YT5_4-2-0{
719
+ .magritte-snackbar-layout-vertical___aR52S_4-3-1 .magritte-snackbar-close___U8YT5_4-3-1{
720
720
  margin-top:-13px;
721
721
  margin-right:-13px;
722
722
  }
723
- .magritte-appear___aGbJS_4-2-0{
723
+ .magritte-appear___aGbJS_4-3-1{
724
724
  opacity:0;
725
725
  }
726
- .magritte-appear-active___Kl7by_4-2-0{
726
+ .magritte-appear-active___Kl7by_4-3-1{
727
727
  opacity:1;
728
728
  transition:opacity var(--show-animation-duration) var(--magritte-semantic-animation-ease-in-out-tiger-300-timing-function-v20-0-1);
729
729
  }
730
- .magritte-appear-done___3g7bl_4-2-0{
730
+ .magritte-appear-done___3g7bl_4-3-1{
731
731
  opacity:1;
732
732
  }
733
- .magritte-exit___MsYCK_4-2-0{
733
+ .magritte-exit___MsYCK_4-3-1{
734
734
  opacity:1;
735
735
  }
736
- .magritte-exit-active___I4AYt_4-2-0{
736
+ .magritte-exit-active___I4AYt_4-3-1{
737
737
  opacity:0;
738
738
  transition:opacity var(--hide-animation-duration) var(--magritte-semantic-animation-ease-in-out-tiger-100-timing-function-v20-0-1);
739
739
  }
740
- .magritte-exit-active_autohide___jvdWc_4-2-0{
740
+ .magritte-exit-active_autohide___jvdWc_4-3-1{
741
741
  opacity:0;
742
742
  transition:opacity var(--autohide-animation-duration) var(--magritte-semantic-animation-ease-in-out-tiger-500-timing-function-v20-0-1);
743
743
  }
744
- .magritte-exit-done___DK8l2_4-2-0{
744
+ .magritte-exit-done___DK8l2_4-3-1{
745
745
  opacity:0;
746
746
  }
package/index.js CHANGED
@@ -7,7 +7,7 @@ import 'react';
7
7
  import './context.js';
8
8
  import './types.js';
9
9
  import 'react/jsx-runtime';
10
- import './snackbar-Dtav5CFd.js';
10
+ import './snackbar-BQTpIxXX.js';
11
11
  import 'react-dom';
12
12
  import './SnackbarRenderer.js';
13
13
  import 'react-transition-group';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hh.ru/magritte-ui-snackbar",
3
- "version": "4.2.0",
3
+ "version": "4.3.1",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "sideEffects": [
@@ -27,10 +27,10 @@
27
27
  "@hh.ru/magritte-common-use-swipe": "3.1.2",
28
28
  "@hh.ru/magritte-design-tokens": "20.0.1",
29
29
  "@hh.ru/magritte-internal-layer-name": "2.2.0",
30
- "@hh.ru/magritte-ui-action": "4.4.17",
31
- "@hh.ru/magritte-ui-icon": "7.9.6",
30
+ "@hh.ru/magritte-ui-action": "4.4.18",
31
+ "@hh.ru/magritte-ui-icon": "7.9.7",
32
32
  "@hh.ru/magritte-ui-layer": "2.1.0",
33
- "@hh.ru/magritte-ui-link": "4.3.16",
33
+ "@hh.ru/magritte-ui-link": "4.3.17",
34
34
  "@hh.ru/magritte-ui-timer": "1.2.36",
35
35
  "@hh.ru/magritte-ui-typography": "3.0.22"
36
36
  },
@@ -46,5 +46,5 @@
46
46
  "publishConfig": {
47
47
  "access": "public"
48
48
  },
49
- "gitHead": "b89d1691e9ba09a332c3f1a799e9ef2e5e49e4bf"
49
+ "gitHead": "0cba1a0b8d618df338719bc996e2f5535af80e79"
50
50
  }
@@ -0,0 +1,5 @@
1
+ import './index.css';
2
+ var styles = {"snackbar-container":"magritte-snackbar-container___SeRql_4-3-1","snackbarContainer":"magritte-snackbar-container___SeRql_4-3-1","snackbar-animation-timeout":"magritte-snackbar-animation-timeout___EQLvG_4-3-1","snackbarAnimationTimeout":"magritte-snackbar-animation-timeout___EQLvG_4-3-1","snackbar":"magritte-snackbar___jgq4H_4-3-1","snackbar_align-top":"magritte-snackbar_align-top___WWWbk_4-3-1","snackbarAlignTop":"magritte-snackbar_align-top___WWWbk_4-3-1","snackbar_align-bottom":"magritte-snackbar_align-bottom___tCBBP_4-3-1","snackbarAlignBottom":"magritte-snackbar_align-bottom___tCBBP_4-3-1","snackbar-in-body":"magritte-snackbar-in-body___Zer4o_4-3-1","snackbarInBody":"magritte-snackbar-in-body___Zer4o_4-3-1","snackbar-content":"magritte-snackbar-content___MlP5J_4-3-1","snackbarContent":"magritte-snackbar-content___MlP5J_4-3-1","snackbar-addon":"magritte-snackbar-addon___-eJn7_4-3-1","snackbarAddon":"magritte-snackbar-addon___-eJn7_4-3-1","snackbar-text":"magritte-snackbar-text___PCxnB_4-3-1","snackbarText":"magritte-snackbar-text___PCxnB_4-3-1","snackbar-text-and-action":"magritte-snackbar-text-and-action___weegp_4-3-1","snackbarTextAndAction":"magritte-snackbar-text-and-action___weegp_4-3-1","snackbar-layout-horizontal":"magritte-snackbar-layout-horizontal___WrBPj_4-3-1","snackbarLayoutHorizontal":"magritte-snackbar-layout-horizontal___WrBPj_4-3-1","snackbar-close":"magritte-snackbar-close___U8YT5_4-3-1","snackbarClose":"magritte-snackbar-close___U8YT5_4-3-1","snackbar-layout-vertical":"magritte-snackbar-layout-vertical___aR52S_4-3-1","snackbarLayoutVertical":"magritte-snackbar-layout-vertical___aR52S_4-3-1","appear":"magritte-appear___aGbJS_4-3-1","appear-active":"magritte-appear-active___Kl7by_4-3-1","appearActive":"magritte-appear-active___Kl7by_4-3-1","appear-done":"magritte-appear-done___3g7bl_4-3-1","appearDone":"magritte-appear-done___3g7bl_4-3-1","exit":"magritte-exit___MsYCK_4-3-1","exit-active":"magritte-exit-active___I4AYt_4-3-1","exitActive":"magritte-exit-active___I4AYt_4-3-1","exit-active_autohide":"magritte-exit-active_autohide___jvdWc_4-3-1","exitActiveAutohide":"magritte-exit-active_autohide___jvdWc_4-3-1","exit-done":"magritte-exit-done___DK8l2_4-3-1","exitDone":"magritte-exit-done___DK8l2_4-3-1"};
3
+
4
+ export { styles as s };
5
+ //# sourceMappingURL=snackbar-BQTpIxXX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snackbar-BQTpIxXX.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,5 +0,0 @@
1
- import './index.css';
2
- var styles = {"snackbar-container":"magritte-snackbar-container___SeRql_4-2-0","snackbarContainer":"magritte-snackbar-container___SeRql_4-2-0","snackbar-animation-timeout":"magritte-snackbar-animation-timeout___EQLvG_4-2-0","snackbarAnimationTimeout":"magritte-snackbar-animation-timeout___EQLvG_4-2-0","snackbar":"magritte-snackbar___jgq4H_4-2-0","snackbar_align-top":"magritte-snackbar_align-top___WWWbk_4-2-0","snackbarAlignTop":"magritte-snackbar_align-top___WWWbk_4-2-0","snackbar_align-bottom":"magritte-snackbar_align-bottom___tCBBP_4-2-0","snackbarAlignBottom":"magritte-snackbar_align-bottom___tCBBP_4-2-0","snackbar-in-body":"magritte-snackbar-in-body___Zer4o_4-2-0","snackbarInBody":"magritte-snackbar-in-body___Zer4o_4-2-0","snackbar-content":"magritte-snackbar-content___MlP5J_4-2-0","snackbarContent":"magritte-snackbar-content___MlP5J_4-2-0","snackbar-addon":"magritte-snackbar-addon___-eJn7_4-2-0","snackbarAddon":"magritte-snackbar-addon___-eJn7_4-2-0","snackbar-text":"magritte-snackbar-text___PCxnB_4-2-0","snackbarText":"magritte-snackbar-text___PCxnB_4-2-0","snackbar-text-and-action":"magritte-snackbar-text-and-action___weegp_4-2-0","snackbarTextAndAction":"magritte-snackbar-text-and-action___weegp_4-2-0","snackbar-layout-horizontal":"magritte-snackbar-layout-horizontal___WrBPj_4-2-0","snackbarLayoutHorizontal":"magritte-snackbar-layout-horizontal___WrBPj_4-2-0","snackbar-close":"magritte-snackbar-close___U8YT5_4-2-0","snackbarClose":"magritte-snackbar-close___U8YT5_4-2-0","snackbar-layout-vertical":"magritte-snackbar-layout-vertical___aR52S_4-2-0","snackbarLayoutVertical":"magritte-snackbar-layout-vertical___aR52S_4-2-0","appear":"magritte-appear___aGbJS_4-2-0","appear-active":"magritte-appear-active___Kl7by_4-2-0","appearActive":"magritte-appear-active___Kl7by_4-2-0","appear-done":"magritte-appear-done___3g7bl_4-2-0","appearDone":"magritte-appear-done___3g7bl_4-2-0","exit":"magritte-exit___MsYCK_4-2-0","exit-active":"magritte-exit-active___I4AYt_4-2-0","exitActive":"magritte-exit-active___I4AYt_4-2-0","exit-active_autohide":"magritte-exit-active_autohide___jvdWc_4-2-0","exitActiveAutohide":"magritte-exit-active_autohide___jvdWc_4-2-0","exit-done":"magritte-exit-done___DK8l2_4-2-0","exitDone":"magritte-exit-done___DK8l2_4-2-0"};
3
-
4
- export { styles as s };
5
- //# sourceMappingURL=snackbar-Dtav5CFd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"snackbar-Dtav5CFd.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}