@hh.ru/magritte-ui-snackbar 6.0.1 → 6.1.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-BUXYCBno.js';
5
+ import { s as styles } from './snackbar-C7_RNDO5.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-BUXYCBno.js';
8
+ import { s as styles } from './snackbar-C7_RNDO5.js';
9
9
  import 'react-transition-group';
10
10
  import 'classnames';
11
11
  import '@hh.ru/magritte-common-keyboard';
@@ -16,6 +16,7 @@ import '@hh.ru/magritte-ui-icon/icon';
16
16
  import '@hh.ru/magritte-ui-layer';
17
17
  import '@hh.ru/magritte-ui-link';
18
18
  import './useAriaSnackbar.js';
19
+ import '@hh.ru/magritte-ui-theme-wrapper';
19
20
  import '@hh.ru/magritte-ui-timer';
20
21
 
21
22
  const DEFAULT_CONTAINER = 'body';
@@ -1 +1 @@
1
- {"version":3,"file":"SnackbarContextProvider.js","sources":["../src/SnackbarContextProvider.tsx"],"sourcesContent":["import { FC, ReactNode, useCallback, useEffect, useMemo, useState, useRef, PropsWithChildren } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { SnackbarRenderer } from '@hh.ru/magritte-ui-snackbar/SnackbarRenderer';\nimport { SnackbarContext, SnackbarContextProps } from '@hh.ru/magritte-ui-snackbar/context';\nimport {\n Align,\n SnackbarProps,\n SnackbarState,\n SnackbarTransitionName,\n SnackbarInternalState,\n} from '@hh.ru/magritte-ui-snackbar/types';\n\nimport styles from './snackbar.less';\n\ntype ProviderState = { [uid: string]: SnackbarState };\ntype SnackbarsByUidMap = Record<string, Set<string>>;\ntype Overrides = { stretched?: boolean; align?: Align };\n\nconst DEFAULT_CONTAINER = 'body';\nconst DEFAULT_POSITION = 0;\nconst MAX_SNACKBAR_IN_CONTAINER = 2; // отсчет с 0\n\nconst getContainerIdByState = (state: ProviderState, uid: string) => state[uid]?.containerId ?? DEFAULT_CONTAINER;\nconst getContainerIdByProps = (props: SnackbarProps) => props.containerId || DEFAULT_CONTAINER;\n\nconst getContainerWasChanged = (state: ProviderState, props: SnackbarProps) => {\n return getContainerIdByState(state, Object.keys(state)[0]) !== getContainerIdByProps(props);\n};\n\nconst getOverridesByState = (state: ProviderState, props: SnackbarProps): Overrides => {\n let stretchedOverride: undefined | boolean;\n let alignOverride: undefined | Align;\n Object.keys(state).forEach((currentUid) => {\n const { stretched: prevStretched, align: prevAlign } = state[currentUid];\n if (stretchedOverride === undefined && (prevStretched === true || prevStretched === undefined)) {\n stretchedOverride = true;\n }\n if (alignOverride === undefined) {\n alignOverride = prevAlign;\n }\n });\n return getContainerWasChanged(state, props)\n ? {}\n : {\n stretched: stretchedOverride ?? props.stretched,\n align: alignOverride ?? props.align,\n };\n};\n\nexport const SnackbarContextProvider: FC<PropsWithChildren> = ({ children }) => {\n const animationTimeoutRef = useRef({\n [SnackbarTransitionName.Show]: 0,\n [SnackbarTransitionName.Hide]: 0,\n [SnackbarTransitionName.Autohide]: 0,\n [SnackbarTransitionName.RemoveImmediately]: 0,\n });\n const containerRefs = useRef<{ [id: string]: HTMLElement }>({});\n const isShownRef = useRef<{ [uid: string]: boolean }>({});\n const [state, setState] = useState<ProviderState>({});\n const snackbarsByUidMapRef = useRef<SnackbarsByUidMap>({});\n\n const animateOut: SnackbarContextProps['animateOut'] = useCallback((uid, transition) => {\n setState((prevState) => {\n if (!(uid in prevState)) {\n return prevState;\n }\n const isCurrentlyVisible = prevState[uid].transition === SnackbarTransitionName.Show;\n const willBeHidden = [SnackbarTransitionName.Hide, SnackbarTransitionName.Autohide].includes(transition);\n\n if (transition === SnackbarTransitionName.RemoveImmediately || (willBeHidden && !isCurrentlyVisible)) {\n const snackbarsByUidMap = snackbarsByUidMapRef.current[getContainerIdByState(prevState, uid)];\n snackbarsByUidMap.delete(uid);\n const uids = [...snackbarsByUidMap].reverse();\n delete isShownRef.current[uid];\n return Object.fromEntries(\n Object.entries(prevState)\n .filter(([key]) => key !== uid)\n .map(([key, state]) => {\n // обновляем позицию на основе нового сета\n const index = uids.indexOf(key);\n state.position = index !== -1 ? index : state.position;\n return [key, state];\n })\n );\n }\n return { ...prevState, [uid]: { ...prevState[uid], transition } };\n });\n }, []);\n\n const animateIn: SnackbarContextProps['animateIn'] = useCallback(\n (uid: string, props: SnackbarProps) => {\n setState((prevState) => {\n if (uid in prevState) {\n // не даем менять некоторые пропсы у существующего снекбара\n const { autohideTime, containerId, showTimer, ..._props } = props;\n // применяем оверайды, так как из пропсов прилетают старые значения\n const overridesProps = getOverridesByState(prevState, props);\n return {\n ...prevState,\n [uid]: { ...prevState[uid], ..._props, ...overridesProps } as SnackbarState,\n };\n }\n // сохраняем информацию о uid\n const containerIdFromProps = getContainerIdByProps(props);\n const snackbarsByUidMap = snackbarsByUidMapRef.current;\n if (snackbarsByUidMap.hasOwnProperty(containerIdFromProps)) {\n snackbarsByUidMap[containerIdFromProps].add(uid);\n } else {\n snackbarsByUidMap[containerIdFromProps] = new Set([uid]);\n }\n\n // если прилетел новый снекбар, то все текущие снеки мы скрываем\n const containerWasChanged = getContainerWasChanged(prevState, props);\n\n // если stretched есть в новом снакбаре => везде ставим stretched\n // аналогичная логика с align (новому снекбару ставим align из стака)\n const uidsFromSet = [...snackbarsByUidMap[containerIdFromProps]].reverse();\n const stretchedByNewSnackbar = props.stretched === undefined || props.stretched === true;\n\n // обходим старый стейт и обновлям параметры (align, stretched, position, transition)\n const prevStateWithUpdatedProps = Object.keys(prevState).reduce((accumulator, currentUid) => {\n const { transition, stretched: prevStretched, position } = prevState[currentUid];\n // если stretched есть в стаке => везде ставим stretched\n const stretched = prevStretched === false ? stretchedByNewSnackbar : prevStretched;\n const positionBySet = uidsFromSet.indexOf(currentUid);\n // скрываем последний снэкбар\n const limitReached = positionBySet > MAX_SNACKBAR_IN_CONTAINER;\n const value = {\n ...prevState[currentUid],\n transition: containerWasChanged || limitReached ? SnackbarTransitionName.Hide : transition,\n position: containerWasChanged || limitReached ? position : positionBySet,\n stretched,\n };\n return { ...accumulator, [currentUid]: value };\n }, {});\n\n // создаем новый snackbar\n const defaultProps: SnackbarInternalState = {\n animateOut: (transition) => animateOut(uid, transition),\n isShown: () => !!isShownRef.current[uid],\n onShown: () => (isShownRef.current[uid] = true),\n transition: SnackbarTransitionName.Show,\n position: DEFAULT_POSITION,\n };\n\n // учитываем оверайды на основе стака\n const overridesProps = getOverridesByState(prevState, props);\n const newState = {\n ...prevStateWithUpdatedProps,\n ...{ [uid]: { ...defaultProps, ...props, ...overridesProps } },\n };\n return newState;\n });\n },\n [animateOut]\n );\n\n const renderFunc = useCallback(\n (uid: string): ReactNode => {\n const containerId = state[uid].containerId;\n const container = containerId ? containerRefs.current[containerId] : document.body;\n\n if (!container) {\n return null;\n }\n return createPortal(\n <SnackbarRenderer\n {...state[uid]}\n timeout={animationTimeoutRef.current[state[uid].transition]}\n container={container}\n />,\n container,\n uid\n );\n },\n [state]\n );\n\n const setContainerRef: SnackbarContextProps['setContainerRef'] = useCallback((containerId, instance) => {\n if (!instance) {\n return;\n }\n containerRefs.current[containerId] = instance;\n }, []);\n\n useEffect(() => {\n const animationTimeoutElement = document.createElement('div');\n animationTimeoutElement.classList.add(styles['snackbar-animation-timeout']);\n document.body.appendChild(animationTimeoutElement);\n const style = window.getComputedStyle(animationTimeoutElement);\n\n for (const transition of Object.values(SnackbarTransitionName)) {\n const animationTimeout = parseInt(style.getPropertyValue(`--${transition}-animation-duration`), 10);\n if (Number.isInteger(animationTimeout)) {\n animationTimeoutRef.current[transition] = animationTimeout;\n }\n }\n\n document.body.removeChild(animationTimeoutElement);\n }, []);\n\n const value = useMemo<SnackbarContextProps>(() => {\n return {\n animateIn,\n animateOut,\n isShown: (uid) => isShownRef.current[uid],\n setContainerRef,\n };\n }, [animateIn, animateOut, setContainerRef]);\n\n return (\n <SnackbarContext.Provider value={value}>\n {Object.keys(state).map(renderFunc)}\n {children}\n </SnackbarContext.Provider>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;AAmBA,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACjC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAEpC,MAAM,qBAAqB,GAAG,CAAC,KAAoB,EAAE,GAAW,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE,WAAW,IAAI,iBAAiB,CAAC;AAClH,MAAM,qBAAqB,GAAG,CAAC,KAAoB,KAAK,KAAK,CAAC,WAAW,IAAI,iBAAiB,CAAC;AAE/F,MAAM,sBAAsB,GAAG,CAAC,KAAoB,EAAE,KAAoB,KAAI;AAC1E,IAAA,OAAO,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAChG,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,KAAoB,EAAE,KAAoB,KAAe;AAClF,IAAA,IAAI,iBAAsC,CAAC;AAC3C,IAAA,IAAI,aAAgC,CAAC;IACrC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,KAAI;AACtC,QAAA,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;AACzE,QAAA,IAAI,iBAAiB,KAAK,SAAS,KAAK,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,SAAS,CAAC,EAAE;YAC5F,iBAAiB,GAAG,IAAI,CAAC;SAC5B;AACD,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;YAC7B,aAAa,GAAG,SAAS,CAAC;SAC7B;AACL,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC;AACvC,UAAE,EAAE;AACJ,UAAE;AACI,YAAA,SAAS,EAAE,iBAAiB,IAAI,KAAK,CAAC,SAAS;AAC/C,YAAA,KAAK,EAAE,aAAa,IAAI,KAAK,CAAC,KAAK;SACtC,CAAC;AACZ,CAAC,CAAC;MAEW,uBAAuB,GAA0B,CAAC,EAAE,QAAQ,EAAE,KAAI;IAC3E,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAC/B,QAAA,CAAC,sBAAsB,CAAC,IAAI,GAAG,CAAC;AAChC,QAAA,CAAC,sBAAsB,CAAC,IAAI,GAAG,CAAC;AAChC,QAAA,CAAC,sBAAsB,CAAC,QAAQ,GAAG,CAAC;AACpC,QAAA,CAAC,sBAAsB,CAAC,iBAAiB,GAAG,CAAC;AAChD,KAAA,CAAC,CAAC;AACH,IAAA,MAAM,aAAa,GAAG,MAAM,CAAgC,EAAE,CAAC,CAAC;AAChE,IAAA,MAAM,UAAU,GAAG,MAAM,CAA6B,EAAE,CAAC,CAAC;IAC1D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,EAAE,CAAC,CAAC;AACtD,IAAA,MAAM,oBAAoB,GAAG,MAAM,CAAoB,EAAE,CAAC,CAAC;IAE3D,MAAM,UAAU,GAAuC,WAAW,CAAC,CAAC,GAAG,EAAE,UAAU,KAAI;AACnF,QAAA,QAAQ,CAAC,CAAC,SAAS,KAAI;AACnB,YAAA,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC,EAAE;AACrB,gBAAA,OAAO,SAAS,CAAC;aACpB;AACD,YAAA,MAAM,kBAAkB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK,sBAAsB,CAAC,IAAI,CAAC;AACrF,YAAA,MAAM,YAAY,GAAG,CAAC,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAEzG,YAAA,IAAI,UAAU,KAAK,sBAAsB,CAAC,iBAAiB,KAAK,YAAY,IAAI,CAAC,kBAAkB,CAAC,EAAE;AAClG,gBAAA,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,qBAAqB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9F,gBAAA,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC9B,MAAM,IAAI,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC;AAC9C,gBAAA,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC/B,OAAO,MAAM,CAAC,WAAW,CACrB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;qBACpB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC;qBAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;;oBAElB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAChC,oBAAA,KAAK,CAAC,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC;AACvD,oBAAA,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBACvB,CAAC,CACT,CAAC;aACL;AACD,YAAA,OAAO,EAAE,GAAG,SAAS,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC;AACtE,SAAC,CAAC,CAAC;KACN,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,SAAS,GAAsC,WAAW,CAC5D,CAAC,GAAW,EAAE,KAAoB,KAAI;AAClC,QAAA,QAAQ,CAAC,CAAC,SAAS,KAAI;AACnB,YAAA,IAAI,GAAG,IAAI,SAAS,EAAE;;AAElB,gBAAA,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC;;gBAElE,MAAM,cAAc,GAAG,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC7D,OAAO;AACH,oBAAA,GAAG,SAAS;AACZ,oBAAA,CAAC,GAAG,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,cAAc,EAAmB;iBAC9E,CAAC;aACL;;AAED,YAAA,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAC1D,YAAA,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC;AACvD,YAAA,IAAI,iBAAiB,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAAE;gBACxD,iBAAiB,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aACpD;iBAAM;gBACH,iBAAiB,CAAC,oBAAoB,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aAC5D;;YAGD,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;;;AAIrE,YAAA,MAAM,WAAW,GAAG,CAAC,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AAC3E,YAAA,MAAM,sBAAsB,GAAG,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;;AAGzF,YAAA,MAAM,yBAAyB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,UAAU,KAAI;AACxF,gBAAA,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;;AAEjF,gBAAA,MAAM,SAAS,GAAG,aAAa,KAAK,KAAK,GAAG,sBAAsB,GAAG,aAAa,CAAC;gBACnF,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;;AAEtD,gBAAA,MAAM,YAAY,GAAG,aAAa,GAAG,yBAAyB,CAAC;AAC/D,gBAAA,MAAM,KAAK,GAAG;oBACV,GAAG,SAAS,CAAC,UAAU,CAAC;AACxB,oBAAA,UAAU,EAAE,mBAAmB,IAAI,YAAY,GAAG,sBAAsB,CAAC,IAAI,GAAG,UAAU;oBAC1F,QAAQ,EAAE,mBAAmB,IAAI,YAAY,GAAG,QAAQ,GAAG,aAAa;oBACxE,SAAS;iBACZ,CAAC;gBACF,OAAO,EAAE,GAAG,WAAW,EAAE,CAAC,UAAU,GAAG,KAAK,EAAE,CAAC;aAClD,EAAE,EAAE,CAAC,CAAC;;AAGP,YAAA,MAAM,YAAY,GAA0B;gBACxC,UAAU,EAAE,CAAC,UAAU,KAAK,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC;gBACvD,OAAO,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC;AACxC,gBAAA,OAAO,EAAE,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAC/C,UAAU,EAAE,sBAAsB,CAAC,IAAI;AACvC,gBAAA,QAAQ,EAAE,gBAAgB;aAC7B,CAAC;;YAGF,MAAM,cAAc,GAAG,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAC7D,YAAA,MAAM,QAAQ,GAAG;AACb,gBAAA,GAAG,yBAAyB;AAC5B,gBAAA,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,EAAE,GAAG,cAAc,EAAE,EAAE;aACjE,CAAC;AACF,YAAA,OAAO,QAAQ,CAAC;AACpB,SAAC,CAAC,CAAC;AACP,KAAC,EACD,CAAC,UAAU,CAAC,CACf,CAAC;AAEF,IAAA,MAAM,UAAU,GAAG,WAAW,CAC1B,CAAC,GAAW,KAAe;QACvB,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;AAC3C,QAAA,MAAM,SAAS,GAAG,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC;QAEnF,IAAI,CAAC,SAAS,EAAE;AACZ,YAAA,OAAO,IAAI,CAAC;SACf;AACD,QAAA,OAAO,YAAY,CACfA,GAAC,CAAA,gBAAgB,OACT,KAAK,CAAC,GAAG,CAAC,EACd,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,EAC3D,SAAS,EAAE,SAAS,GACtB,EACF,SAAS,EACT,GAAG,CACN,CAAC;AACN,KAAC,EACD,CAAC,KAAK,CAAC,CACV,CAAC;IAEF,MAAM,eAAe,GAA4C,WAAW,CAAC,CAAC,WAAW,EAAE,QAAQ,KAAI;QACnG,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO;SACV;AACD,QAAA,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC;KACjD,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,MAAK;QACX,MAAM,uBAAuB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9D,uBAAuB,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;AAC5E,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;QAE/D,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,EAAE;AAC5D,YAAA,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA,EAAA,EAAK,UAAU,CAAqB,mBAAA,CAAA,CAAC,EAAE,EAAE,CAAC,CAAC;AACpG,YAAA,IAAI,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE;AACpC,gBAAA,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC;aAC9D;SACJ;AAED,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;KACtD,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,MAAM,KAAK,GAAG,OAAO,CAAuB,MAAK;QAC7C,OAAO;YACH,SAAS;YACT,UAAU;YACV,OAAO,EAAE,CAAC,GAAG,KAAK,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC;YACzC,eAAe;SAClB,CAAC;KACL,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;IAE7C,QACIC,IAAC,CAAA,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,EAAA,QAAA,EAAA,CACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAClC,QAAQ,CACc,EAAA,CAAA,EAC7B;AACN;;;;"}
1
+ {"version":3,"file":"SnackbarContextProvider.js","sources":["../src/SnackbarContextProvider.tsx"],"sourcesContent":["import { FC, ReactNode, useCallback, useEffect, useMemo, useState, useRef, PropsWithChildren } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { SnackbarRenderer } from '@hh.ru/magritte-ui-snackbar/SnackbarRenderer';\nimport { SnackbarContext, SnackbarContextProps } from '@hh.ru/magritte-ui-snackbar/context';\nimport {\n Align,\n SnackbarProps,\n SnackbarState,\n SnackbarTransitionName,\n SnackbarInternalState,\n} from '@hh.ru/magritte-ui-snackbar/types';\n\nimport styles from './snackbar.less';\n\ntype ProviderState = { [uid: string]: SnackbarState };\ntype SnackbarsByUidMap = Record<string, Set<string>>;\ntype Overrides = { stretched?: boolean; align?: Align };\n\nconst DEFAULT_CONTAINER = 'body';\nconst DEFAULT_POSITION = 0;\nconst MAX_SNACKBAR_IN_CONTAINER = 2; // отсчет с 0\n\nconst getContainerIdByState = (state: ProviderState, uid: string) => state[uid]?.containerId ?? DEFAULT_CONTAINER;\nconst getContainerIdByProps = (props: SnackbarProps) => props.containerId || DEFAULT_CONTAINER;\n\nconst getContainerWasChanged = (state: ProviderState, props: SnackbarProps) => {\n return getContainerIdByState(state, Object.keys(state)[0]) !== getContainerIdByProps(props);\n};\n\nconst getOverridesByState = (state: ProviderState, props: SnackbarProps): Overrides => {\n let stretchedOverride: undefined | boolean;\n let alignOverride: undefined | Align;\n Object.keys(state).forEach((currentUid) => {\n const { stretched: prevStretched, align: prevAlign } = state[currentUid];\n if (stretchedOverride === undefined && (prevStretched === true || prevStretched === undefined)) {\n stretchedOverride = true;\n }\n if (alignOverride === undefined) {\n alignOverride = prevAlign;\n }\n });\n return getContainerWasChanged(state, props)\n ? {}\n : {\n stretched: stretchedOverride ?? props.stretched,\n align: alignOverride ?? props.align,\n };\n};\n\nexport const SnackbarContextProvider: FC<PropsWithChildren> = ({ children }) => {\n const animationTimeoutRef = useRef({\n [SnackbarTransitionName.Show]: 0,\n [SnackbarTransitionName.Hide]: 0,\n [SnackbarTransitionName.Autohide]: 0,\n [SnackbarTransitionName.RemoveImmediately]: 0,\n });\n const containerRefs = useRef<{ [id: string]: HTMLElement }>({});\n const isShownRef = useRef<{ [uid: string]: boolean }>({});\n const [state, setState] = useState<ProviderState>({});\n const snackbarsByUidMapRef = useRef<SnackbarsByUidMap>({});\n\n const animateOut: SnackbarContextProps['animateOut'] = useCallback((uid, transition) => {\n setState((prevState) => {\n if (!(uid in prevState)) {\n return prevState;\n }\n const isCurrentlyVisible = prevState[uid].transition === SnackbarTransitionName.Show;\n const willBeHidden = [SnackbarTransitionName.Hide, SnackbarTransitionName.Autohide].includes(transition);\n\n if (transition === SnackbarTransitionName.RemoveImmediately || (willBeHidden && !isCurrentlyVisible)) {\n const snackbarsByUidMap = snackbarsByUidMapRef.current[getContainerIdByState(prevState, uid)];\n snackbarsByUidMap.delete(uid);\n const uids = [...snackbarsByUidMap].reverse();\n delete isShownRef.current[uid];\n return Object.fromEntries(\n Object.entries(prevState)\n .filter(([key]) => key !== uid)\n .map(([key, state]) => {\n // обновляем позицию на основе нового сета\n const index = uids.indexOf(key);\n state.position = index !== -1 ? index : state.position;\n return [key, state];\n })\n );\n }\n return { ...prevState, [uid]: { ...prevState[uid], transition } };\n });\n }, []);\n\n const animateIn: SnackbarContextProps['animateIn'] = useCallback(\n (uid: string, props: SnackbarProps) => {\n setState((prevState) => {\n if (uid in prevState) {\n // не даем менять некоторые пропсы у существующего снекбара\n const { autohideTime, containerId, showTimer, ..._props } = props;\n // применяем оверайды, так как из пропсов прилетают старые значения\n const overridesProps = getOverridesByState(prevState, props);\n return {\n ...prevState,\n [uid]: { ...prevState[uid], ..._props, ...overridesProps } as SnackbarState,\n };\n }\n // сохраняем информацию о uid\n const containerIdFromProps = getContainerIdByProps(props);\n const snackbarsByUidMap = snackbarsByUidMapRef.current;\n if (snackbarsByUidMap.hasOwnProperty(containerIdFromProps)) {\n snackbarsByUidMap[containerIdFromProps].add(uid);\n } else {\n snackbarsByUidMap[containerIdFromProps] = new Set([uid]);\n }\n\n // если прилетел новый снекбар, то все текущие снеки мы скрываем\n const containerWasChanged = getContainerWasChanged(prevState, props);\n\n // если stretched есть в новом снакбаре => везде ставим stretched\n // аналогичная логика с align (новому снекбару ставим align из стака)\n const uidsFromSet = [...snackbarsByUidMap[containerIdFromProps]].reverse();\n const stretchedByNewSnackbar = props.stretched === undefined || props.stretched === true;\n\n // обходим старый стейт и обновлям параметры (align, stretched, position, transition)\n const prevStateWithUpdatedProps = Object.keys(prevState).reduce((accumulator, currentUid) => {\n const { transition, stretched: prevStretched, position } = prevState[currentUid];\n // если stretched есть в стаке => везде ставим stretched\n const stretched = prevStretched === false ? stretchedByNewSnackbar : prevStretched;\n const positionBySet = uidsFromSet.indexOf(currentUid);\n // скрываем последний снэкбар\n const limitReached = positionBySet > MAX_SNACKBAR_IN_CONTAINER;\n const value = {\n ...prevState[currentUid],\n transition: containerWasChanged || limitReached ? SnackbarTransitionName.Hide : transition,\n position: containerWasChanged || limitReached ? position : positionBySet,\n stretched,\n };\n return { ...accumulator, [currentUid]: value };\n }, {});\n\n // создаем новый snackbar\n const defaultProps: SnackbarInternalState = {\n animateOut: (transition) => animateOut(uid, transition),\n isShown: () => !!isShownRef.current[uid],\n onShown: () => (isShownRef.current[uid] = true),\n transition: SnackbarTransitionName.Show,\n position: DEFAULT_POSITION,\n };\n\n // учитываем оверайды на основе стака\n const overridesProps = getOverridesByState(prevState, props);\n const newState = {\n ...prevStateWithUpdatedProps,\n ...{ [uid]: { ...defaultProps, ...props, ...overridesProps } },\n };\n return newState;\n });\n },\n [animateOut]\n );\n\n const renderFunc = useCallback(\n (uid: string): ReactNode => {\n const containerId = state[uid].containerId;\n const container = containerId ? containerRefs.current[containerId] : document.body;\n\n if (!container) {\n return null;\n }\n return createPortal(\n <SnackbarRenderer\n {...state[uid]}\n timeout={animationTimeoutRef.current[state[uid].transition]}\n container={container}\n />,\n container,\n uid\n );\n },\n [state]\n );\n\n const setContainerRef: SnackbarContextProps['setContainerRef'] = useCallback((containerId, instance) => {\n if (!instance) {\n return;\n }\n containerRefs.current[containerId] = instance;\n }, []);\n\n useEffect(() => {\n const animationTimeoutElement = document.createElement('div');\n animationTimeoutElement.classList.add(styles['snackbar-animation-timeout']);\n document.body.appendChild(animationTimeoutElement);\n const style = window.getComputedStyle(animationTimeoutElement);\n\n for (const transition of Object.values(SnackbarTransitionName)) {\n const animationTimeout = parseInt(style.getPropertyValue(`--${transition}-animation-duration`), 10);\n if (Number.isInteger(animationTimeout)) {\n animationTimeoutRef.current[transition] = animationTimeout;\n }\n }\n\n document.body.removeChild(animationTimeoutElement);\n }, []);\n\n const value = useMemo<SnackbarContextProps>(() => {\n return {\n animateIn,\n animateOut,\n isShown: (uid) => isShownRef.current[uid],\n setContainerRef,\n };\n }, [animateIn, animateOut, setContainerRef]);\n\n return (\n <SnackbarContext.Provider value={value}>\n {Object.keys(state).map(renderFunc)}\n {children}\n </SnackbarContext.Provider>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -12,8 +12,9 @@ import { Layer } from '@hh.ru/magritte-ui-layer';
12
12
  import { Link } from '@hh.ru/magritte-ui-link';
13
13
  import { SnackbarTransitionName } from './types.js';
14
14
  import { useAriaSnackbar } from './useAriaSnackbar.js';
15
+ import { ThemeWrapper } from '@hh.ru/magritte-ui-theme-wrapper';
15
16
  import { useTimer, Timer } from '@hh.ru/magritte-ui-timer';
16
- import { s as styles } from './snackbar-BUXYCBno.js';
17
+ import { s as styles } from './snackbar-C7_RNDO5.js';
17
18
 
18
19
  const OTHER_CLASS_NAMES = {
19
20
  [SnackbarTransitionName.Hide]: {
@@ -228,15 +229,17 @@ const SnackbarRenderer = ({ actionLabel, addon, align = 'bottom', animateOut, au
228
229
  if (actionLabel) {
229
230
  snackbarRef.current?.focus();
230
231
  }
231
- }, onExited: removeImmediately, timeout: timeout, children: jsx(Layer, { layer: "snackbar", children: jsx("div", { ...props, ...ariaAttributes, className: classnames(styles.snackbar, {
232
- [styles.snackbarStretched]: stretched,
233
- [styles[`snackbar_align-${align}`]]: align,
234
- [styles.snackbarInBody]: !containerId,
235
- }), ref: snackbarRefMultiplexer, onFocus: (event) => {
236
- if (event.target !== snackbarRef.current && !hasTouchSupportRef.current) {
237
- setHasFocus(true);
238
- }
239
- }, onBlur: () => !hasTouchSupportRef.current && setHasFocus(false), onMouseEnter: () => setHasHover(true), onMouseLeave: () => setHasHover(false), "data-magritte-snackbar": true, children: jsxs("div", { className: styles.snackbarContent, children: [!!addon && (jsx("div", { className: styles.snackbarAddon, "data-qa": "snackbar-addon", children: addon })), !!autohideTime && showTimer && (jsx("div", { className: styles.snackbarAddon, "data-qa": "snackbar-timer", children: jsx(Timer, { timeout: autohideTime, pause: hasFocus || hasHover, callback: autohideFunc }) })), jsx("div", { className: styles.snackbarTextWrapper, children: jsx("div", { className: styles.snackbarText, id: "dialog-description", children: children }) }), showDivider && (jsx("div", { className: styles.divider, children: jsx(Divider, { mode: "vertical" }) })), !!actionLabel && (jsx("div", { className: styles.action, children: jsx(Link, { "data-qa": "snackbar-user-action", "aria-label": actionLabel, Element: "button", type: "button", onClick: actionFunc, typography: "subtitle-1-semibold", style: "contrast", children: actionLabel }) })), showClose && (jsx("div", { className: styles.snackbarClose, children: jsx(CrossOutlinedSize24, { padding: 8, borderRadius: "halfHeight", initialColor: "constant-secondary", "data-qa": "snackbar-close-action", tabIndex: actionLabel ? 0 : -1, "aria-label": actionLabel && typeof ariaLabelClose === 'string' ? ariaLabelClose : undefined, onClick: closeFunc }) }))] }) }) }) }));
232
+ }, onExited: removeImmediately, timeout: timeout, children: jsx(ThemeWrapper, { children: (themeClass) => (jsx(Layer, { layer: "snackbar", children: jsx("div", { ...props, ...ariaAttributes, className: classnames(styles.snackbar, themeClass, {
233
+ [styles.snackbarStretched]: stretched,
234
+ [styles[`snackbar_align-${align}`]]: align,
235
+ [styles.snackbarInBody]: !containerId,
236
+ }), ref: snackbarRefMultiplexer, onFocus: (event) => {
237
+ if (event.target !== snackbarRef.current && !hasTouchSupportRef.current) {
238
+ setHasFocus(true);
239
+ }
240
+ }, onBlur: () => !hasTouchSupportRef.current && setHasFocus(false), onMouseEnter: () => setHasHover(true), onMouseLeave: () => setHasHover(false), "data-magritte-snackbar": true, children: jsxs("div", { className: styles.snackbarContent, children: [!!addon && (jsx("div", { className: styles.snackbarAddon, "data-qa": "snackbar-addon", children: addon })), !!autohideTime && showTimer && (jsx("div", { className: styles.snackbarAddon, "data-qa": "snackbar-timer", children: jsx(Timer, { timeout: autohideTime, pause: hasFocus || hasHover, callback: autohideFunc }) })), jsx("div", { className: styles.snackbarTextWrapper, children: jsx("div", { className: styles.snackbarText, id: "dialog-description", children: children }) }), showDivider && (jsx("div", { className: styles.divider, children: jsx(Divider, { mode: "vertical" }) })), !!actionLabel && (jsx("div", { className: styles.action, children: jsx(Link, { "data-qa": "snackbar-user-action", "aria-label": actionLabel, Element: "button", type: "button", onClick: actionFunc, typography: "subtitle-1-semibold", style: "contrast", children: actionLabel }) })), showClose && (jsx("div", { className: styles.snackbarClose, children: jsx(CrossOutlinedSize24, { padding: 8, borderRadius: "halfHeight", initialColor: "constant-secondary", "data-qa": "snackbar-close-action", tabIndex: actionLabel ? 0 : -1, "aria-label": actionLabel && typeof ariaLabelClose === 'string'
241
+ ? ariaLabelClose
242
+ : undefined, onClick: closeFunc }) }))] }) }) })) }) }));
240
243
  };
241
244
 
242
245
  export { SnackbarRenderer };
@@ -1 +1 @@
1
- {"version":3,"file":"SnackbarRenderer.js","sources":["../src/SnackbarRenderer.tsx"],"sourcesContent":["import { FC, useCallback, useEffect, useRef, useState, useLayoutEffect } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport classnames from 'classnames';\n\nimport { useEscapeToClose } from '@hh.ru/magritte-common-keyboard';\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport { SwipeEventHandler, SwipeThreshold, useSwipeHandlers } from '@hh.ru/magritte-common-use-swipe';\nimport { Divider } from '@hh.ru/magritte-ui-divider';\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 { 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 OTHER_CLASS_NAMES = {\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.RemoveImmediately]: {},\n};\n\nconst OPEN_CLASS_NAMES = {\n [SnackbarTransitionName.Show]: {\n top: {\n appear: styles.appearTop,\n appearActive: styles['appear-active'],\n appearDone: styles['appear-done'],\n },\n bottom: {\n appear: styles.appearBottom,\n appearActive: styles['appear-active'],\n appearDone: styles['appear-done'],\n },\n },\n};\n\nconst DEFAULT_AUTOHIDE_TIME_MS = 6000;\nconst BASE_VERTICAL_PADDING = 16;\nconst VERTICAL_PADDING_BETWEEN_SNACKBAR = 8;\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 stretched = true,\n position,\n container,\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 prevWidth = useRef<number>(0);\n const stretchedRef = useRef(stretched);\n const autohideFunc = useCallback(() => animateOut(SnackbarTransitionName.Autohide), [animateOut]);\n const closeFunc = useCallback(() => animateOut(SnackbarTransitionName.Hide), [animateOut]);\n const ariaAttributes = useAriaSnackbar({ role, hasAction: !!actionLabel, 'aria-label': ariaLabel });\n const visible = transition === SnackbarTransitionName.Show;\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 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(() => {\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 }, [align, visible]);\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.removeProperty('opacity');\n snackbarRef.current.style.removeProperty('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 useEffect(() => {\n const snackbar = snackbarRef.current;\n if (!snackbar) {\n return;\n }\n snackbar.style.setProperty('--snackbar-offset', `${snackbarRef.current.offsetHeight}px`);\n prevWidth.current = snackbar.getBoundingClientRect().width;\n }, []);\n\n useEffect(() => {\n const snackbar = snackbarRef.current;\n if (!snackbar) {\n return;\n }\n // снекбары могут быть разные по высоте\n // для расчета текущей позиции\n // высоту каждого предыдущего надо учесть\n const snackbars = container.querySelectorAll<HTMLElement>('[data-magritte-snackbar=\"true\"]');\n let offset = 0;\n let found = false;\n for (const node of snackbars) {\n if (found) {\n offset += node.offsetHeight;\n }\n if (node === snackbar) {\n found = true;\n }\n }\n const value = `${offset + VERTICAL_PADDING_BETWEEN_SNACKBAR * position + BASE_VERTICAL_PADDING}px`;\n if (align === 'top') {\n snackbar.style.top = value;\n snackbar.style.removeProperty('bottom');\n return;\n }\n snackbar.style.bottom = value;\n snackbar.style.removeProperty('top');\n }, [position, align, container]);\n\n useLayoutEffect(() => {\n const snackbar = snackbarRef.current;\n if (!snackbar || stretched === stretchedRef.current) {\n return void 0;\n }\n const width = snackbar.getBoundingClientRect().width;\n if (Math.abs(width - prevWidth.current) < 1) {\n return void 0;\n }\n // width: auto не анимируется, поэтому\n // зафиксировали ширину → анимировали → снял инлайн свойство\n snackbar.style.width = `${prevWidth.current}px`;\n void snackbar.offsetWidth; // force layout\n snackbar.style.width = `${width}px`;\n const onEnd = (event: TransitionEvent) => {\n if (event.propertyName !== 'width') {\n return;\n }\n snackbar.style.removeProperty('width');\n snackbar.removeEventListener('transitionend', onEnd);\n };\n snackbar.addEventListener('transitionend', onEnd);\n stretchedRef.current = stretched;\n prevWidth.current = width;\n\n return () => {\n snackbar.removeEventListener('transitionend', onEnd);\n snackbar.style.removeProperty('width');\n };\n }, [stretched]);\n\n const showDivider = showClose || Boolean(actionLabel);\n const classNames =\n transition === SnackbarTransitionName.Show\n ? OPEN_CLASS_NAMES[transition][align]\n : OTHER_CLASS_NAMES[transition];\n\n return (\n <CSSTransition\n appear\n classNames={classNames}\n in={visible}\n nodeRef={snackbarRef}\n onEnter={() => {\n onShown();\n }}\n onEntered={() => {\n if (actionLabel) {\n snackbarRef.current?.focus();\n }\n }}\n onExited={removeImmediately}\n timeout={timeout}\n >\n <Layer layer=\"snackbar\">\n <div\n {...props}\n {...ariaAttributes}\n className={classnames(styles.snackbar, {\n [styles.snackbarStretched]: stretched,\n [styles[`snackbar_align-${align}`]]: align,\n [styles.snackbarInBody]: !containerId,\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 data-magritte-snackbar={true}\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.snackbarTextWrapper}>\n <div className={styles.snackbarText} id=\"dialog-description\">\n {children}\n </div>\n </div>\n {showDivider && (\n <div className={styles.divider}>\n <Divider mode=\"vertical\" />\n </div>\n )}\n {!!actionLabel && (\n <div className={styles.action}>\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 </div>\n )}\n {showClose && (\n <div className={styles.snackbarClose}>\n <CrossOutlinedSize24\n padding={8}\n borderRadius=\"halfHeight\"\n initialColor=\"constant-secondary\"\n data-qa=\"snackbar-close-action\"\n tabIndex={actionLabel ? 0 : -1}\n aria-label={\n actionLabel && typeof ariaLabelClose === 'string' ? ariaLabelClose : undefined\n }\n onClick={closeFunc}\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, useRef, useState, useLayoutEffect } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport classnames from 'classnames';\n\nimport { useEscapeToClose } from '@hh.ru/magritte-common-keyboard';\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport { SwipeEventHandler, SwipeThreshold, useSwipeHandlers } from '@hh.ru/magritte-common-use-swipe';\nimport { Divider } from '@hh.ru/magritte-ui-divider';\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 { SnackbarRendererProps, SnackbarTransitionName } from '@hh.ru/magritte-ui-snackbar/types';\nimport { useAriaSnackbar } from '@hh.ru/magritte-ui-snackbar/useAriaSnackbar';\nimport { ThemeWrapper } from '@hh.ru/magritte-ui-theme-wrapper';\nimport { Timer, useTimer } from '@hh.ru/magritte-ui-timer';\n\nimport styles from './snackbar.less';\n\nconst OTHER_CLASS_NAMES = {\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.RemoveImmediately]: {},\n};\n\nconst OPEN_CLASS_NAMES = {\n [SnackbarTransitionName.Show]: {\n top: {\n appear: styles.appearTop,\n appearActive: styles['appear-active'],\n appearDone: styles['appear-done'],\n },\n bottom: {\n appear: styles.appearBottom,\n appearActive: styles['appear-active'],\n appearDone: styles['appear-done'],\n },\n },\n};\n\nconst DEFAULT_AUTOHIDE_TIME_MS = 6000;\nconst BASE_VERTICAL_PADDING = 16;\nconst VERTICAL_PADDING_BETWEEN_SNACKBAR = 8;\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 stretched = true,\n position,\n container,\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 prevWidth = useRef<number>(0);\n const stretchedRef = useRef(stretched);\n const autohideFunc = useCallback(() => animateOut(SnackbarTransitionName.Autohide), [animateOut]);\n const closeFunc = useCallback(() => animateOut(SnackbarTransitionName.Hide), [animateOut]);\n const ariaAttributes = useAriaSnackbar({ role, hasAction: !!actionLabel, 'aria-label': ariaLabel });\n const visible = transition === SnackbarTransitionName.Show;\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 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(() => {\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 }, [align, visible]);\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.removeProperty('opacity');\n snackbarRef.current.style.removeProperty('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 useEffect(() => {\n const snackbar = snackbarRef.current;\n if (!snackbar) {\n return;\n }\n snackbar.style.setProperty('--snackbar-offset', `${snackbarRef.current.offsetHeight}px`);\n prevWidth.current = snackbar.getBoundingClientRect().width;\n }, []);\n\n useEffect(() => {\n const snackbar = snackbarRef.current;\n if (!snackbar) {\n return;\n }\n // снекбары могут быть разные по высоте\n // для расчета текущей позиции\n // высоту каждого предыдущего надо учесть\n const snackbars = container.querySelectorAll<HTMLElement>('[data-magritte-snackbar=\"true\"]');\n let offset = 0;\n let found = false;\n for (const node of snackbars) {\n if (found) {\n offset += node.offsetHeight;\n }\n if (node === snackbar) {\n found = true;\n }\n }\n const value = `${offset + VERTICAL_PADDING_BETWEEN_SNACKBAR * position + BASE_VERTICAL_PADDING}px`;\n if (align === 'top') {\n snackbar.style.top = value;\n snackbar.style.removeProperty('bottom');\n return;\n }\n snackbar.style.bottom = value;\n snackbar.style.removeProperty('top');\n }, [position, align, container]);\n\n useLayoutEffect(() => {\n const snackbar = snackbarRef.current;\n if (!snackbar || stretched === stretchedRef.current) {\n return void 0;\n }\n const width = snackbar.getBoundingClientRect().width;\n if (Math.abs(width - prevWidth.current) < 1) {\n return void 0;\n }\n // width: auto не анимируется, поэтому\n // зафиксировали ширину → анимировали → снял инлайн свойство\n snackbar.style.width = `${prevWidth.current}px`;\n void snackbar.offsetWidth; // force layout\n snackbar.style.width = `${width}px`;\n const onEnd = (event: TransitionEvent) => {\n if (event.propertyName !== 'width') {\n return;\n }\n snackbar.style.removeProperty('width');\n snackbar.removeEventListener('transitionend', onEnd);\n };\n snackbar.addEventListener('transitionend', onEnd);\n stretchedRef.current = stretched;\n prevWidth.current = width;\n\n return () => {\n snackbar.removeEventListener('transitionend', onEnd);\n snackbar.style.removeProperty('width');\n };\n }, [stretched]);\n\n const showDivider = showClose || Boolean(actionLabel);\n const classNames =\n transition === SnackbarTransitionName.Show\n ? OPEN_CLASS_NAMES[transition][align]\n : OTHER_CLASS_NAMES[transition];\n\n return (\n <CSSTransition\n appear\n classNames={classNames}\n in={visible}\n nodeRef={snackbarRef}\n onEnter={() => {\n onShown();\n }}\n onEntered={() => {\n if (actionLabel) {\n snackbarRef.current?.focus();\n }\n }}\n onExited={removeImmediately}\n timeout={timeout}\n >\n <ThemeWrapper>\n {(themeClass) => (\n <Layer layer=\"snackbar\">\n <div\n {...props}\n {...ariaAttributes}\n className={classnames(styles.snackbar, themeClass, {\n [styles.snackbarStretched]: stretched,\n [styles[`snackbar_align-${align}`]]: align,\n [styles.snackbarInBody]: !containerId,\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 data-magritte-snackbar={true}\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\n timeout={autohideTime}\n pause={hasFocus || hasHover}\n callback={autohideFunc}\n />\n </div>\n )}\n <div className={styles.snackbarTextWrapper}>\n <div className={styles.snackbarText} id=\"dialog-description\">\n {children}\n </div>\n </div>\n {showDivider && (\n <div className={styles.divider}>\n <Divider mode=\"vertical\" />\n </div>\n )}\n {!!actionLabel && (\n <div className={styles.action}>\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 </div>\n )}\n {showClose && (\n <div className={styles.snackbarClose}>\n <CrossOutlinedSize24\n padding={8}\n borderRadius=\"halfHeight\"\n initialColor=\"constant-secondary\"\n data-qa=\"snackbar-close-action\"\n tabIndex={actionLabel ? 0 : -1}\n aria-label={\n actionLabel && typeof ariaLabelClose === 'string'\n ? ariaLabelClose\n : undefined\n }\n onClick={closeFunc}\n />\n </div>\n )}\n </div>\n </div>\n </Layer>\n )}\n </ThemeWrapper>\n </CSSTransition>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,MAAM,iBAAiB,GAAG;AACtB,IAAA,CAAC,sBAAsB,CAAC,IAAI,GAAG;QAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;AACjB,QAAA,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC;AACjC,QAAA,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC;AAChC,KAAA;AACD,IAAA,CAAC,sBAAsB,CAAC,QAAQ,GAAG;QAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;AACjB,QAAA,UAAU,EAAE,MAAM,CAAC,sBAAsB,CAAC;AAC1C,QAAA,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC;AAChC,KAAA;AACD,IAAA,CAAC,sBAAsB,CAAC,iBAAiB,GAAG,EAAE;CACjD,CAAC;AAEF,MAAM,gBAAgB,GAAG;AACrB,IAAA,CAAC,sBAAsB,CAAC,IAAI,GAAG;AAC3B,QAAA,GAAG,EAAE;YACD,MAAM,EAAE,MAAM,CAAC,SAAS;AACxB,YAAA,YAAY,EAAE,MAAM,CAAC,eAAe,CAAC;AACrC,YAAA,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC;AACpC,SAAA;AACD,QAAA,MAAM,EAAE;YACJ,MAAM,EAAE,MAAM,CAAC,YAAY;AAC3B,YAAA,YAAY,EAAE,MAAM,CAAC,eAAe,CAAC;AACrC,YAAA,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC;AACpC,SAAA;AACJ,KAAA;CACJ,CAAC;AAEF,MAAM,wBAAwB,GAAG,IAAI,CAAC;AACtC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,MAAM,iCAAiC,GAAG,CAAC,CAAC;AAErC,MAAM,gBAAgB,GAA8B,CAAC,EACxD,WAAW,EACX,KAAK,EACL,KAAK,GAAG,QAAQ,EAChB,UAAU,EACV,YAAY,GAAG,wBAAwB,EACvC,QAAQ,EACR,WAAW,EACX,OAAO,EACP,QAAQ,EACR,OAAO,EACP,OAAO,EACP,SAAS,EACT,SAAS,EACT,OAAO,EACP,UAAU,EACV,YAAY,EAAE,SAAS,EACvB,kBAAkB,EAAE,cAAc,EAClC,IAAI,GAAG,QAAQ,EACf,SAAS,GAAG,IAAI,EAChB,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACX,KAAI;AACD,IAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChD,IAAA,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACzC,IAAA,MAAM,SAAS,GAAG,MAAM,CAAS,CAAC,CAAC,CAAC;AACpC,IAAA,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AACvC,IAAA,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,UAAU,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AAClG,IAAA,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AAC3F,IAAA,MAAM,cAAc,GAAG,eAAe,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC;AACpG,IAAA,MAAM,OAAO,GAAG,UAAU,KAAK,sBAAsB,CAAC,IAAI,CAAC;AAC3D,IAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,iBAAiB,EAAE,OAAO,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAC9G,IAAA,MAAM,kBAAkB,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;AAC/D,IAAA,MAAM,kBAAkB,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;AAE/D,IAAA,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAK;AACvC,QAAA,UAAU,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;AAChB,KAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;AAE1B,IAAA,MAAM,WAAW,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;AACjD,IAAA,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,sBAAsB,GAAG,eAAe,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAE/E,QAAQ,CACJ,CAAC,CAAC,YAAY,IAAI,CAAC,SAAS,GAAG,YAAY,GAAG,CAAC,CAAC,EAChD,CAAC,QAAQ,KAAI;QACT,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3C,QAAA,OAAO,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;AACzC,KAAC,EACD,CAAC,SAAS,KAAI;AACV,QAAA,SAAS,GAAG,CAAC,IAAI,YAAY,EAAE,CAAC;AACpC,KAAC,EACD,QAAQ,IAAI,QAAQ,CACvB,CAAC;IAEF,SAAS,CAAC,MAAK;AACX,QAAA,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,EAAE;YAC9B,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;YAC5D,MAAM,mBAAmB,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY,GAAG,GAAG,CAAC;AACnE,YAAA,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC;YACzD,gBAAgB,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YACpG,gBAAgB,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;AAC5F,YAAA,kBAAkB,CAAC,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AACjF,YAAA,kBAAkB,CAAC,OAAO;AACtB,gBAAA,KAAK,KAAK,KAAK;sBACT,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE;sBAC7D,EAAE,QAAQ,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;SAC3E;AACL,KAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAErB,IAAA,MAAM,eAAe,GAAsB,WAAW,CAClD,CAAC,KAAK,KAAI;AACN,QAAA,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,EAAE;;AAE9B,YAAA,IAAI,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC;;YAGzD,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,MAAM,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE;AACzF,gBAAA,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC;aACpD;YAED,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AACnF,YAAA,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,CAAG,EAAA,CAAC,GAAG,cAAc,GAAG,aAAa,EAAE,CAAC;AAC5E,YAAA,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,UAAA,EAAa,KAAK,CAAC,SAAS,CAAO,IAAA,EAAA,KAAK,CAAC,SAAS,KAAK,CAAC;SACjG;AACL,KAAC,EACD,CAAC,KAAK,CAAC,CACV,CAAC;AAEF,IAAA,MAAM,cAAc,GAAsB,WAAW,CAAC,MAAK;AACvD,QAAA,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,EAAE;YAC9B,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;SAC3C;AACD,QAAA,SAAS,EAAE,CAAC;AAChB,KAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AAEhB,IAAA,MAAM,iBAAiB,GAAsB,WAAW,CAAC,MAAK;AAC1D,QAAA,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,EAAE;YAC9B,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACpD,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;SACzD;KACJ,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,aAAa,GAAG,gBAAgB,CAAC;AACnC,QAAA,aAAa,EAAE,kBAAkB;AACjC,QAAA,aAAa,EAAE,kBAAkB;AACjC,QAAA,WAAW,EAAE,eAAe;AAC5B,QAAA,UAAU,EAAE,cAAc;AAC1B,QAAA,aAAa,EAAE,iBAAiB;AACnC,KAAA,CAAC,CAAC;IAEH,SAAS,CAAC,MAAK;AACX,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,KAAK,CAAC,CAAC;SACjB;AAED,QAAA,MAAM,gBAAgB,GAAG,CAAC,KAAiB,KAAI;YAC3C,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,YAAA,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;YAClC,WAAW,CAAC,IAAI,CAAC,CAAC;AAClB,YAAA,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACtC,SAAC,CAAC;AAEF,QAAA,MAAM,eAAe,GAAG,CAAC,KAAiB,KAAI;YAC1C,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,YAAA,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACrC,SAAC,CAAC;AAEF,QAAA,MAAM,cAAc,GAAG,CAAC,KAAiB,KAAI;YACzC,WAAW,CAAC,KAAK,CAAC,CAAC;AACnB,YAAA,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACpC,SAAC,CAAC;AAEF,QAAA,MAAM,iBAAiB,GAAG,CAAC,KAAiB,KAAI;YAC5C,WAAW,CAAC,KAAK,CAAC,CAAC;AACnB,YAAA,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACvC,SAAC,CAAC;AAEF,QAAA,QAAQ,CAAC,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;AAC1D,QAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5E,QAAA,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AACtD,QAAA,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;AAE5D,QAAA,OAAO,MAAK;AACR,YAAA,QAAQ,CAAC,mBAAmB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;AAC7D,YAAA,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AAC3D,YAAA,QAAQ,CAAC,mBAAmB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AACzD,YAAA,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;AACnE,SAAC,CAAC;AACN,KAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,SAAS,CAAC,MAAK;AACX,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO;SACV;AACD,QAAA,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAG,EAAA,WAAW,CAAC,OAAO,CAAC,YAAY,CAAA,EAAA,CAAI,CAAC,CAAC;QACzF,SAAS,CAAC,OAAO,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;KAC9D,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,MAAK;AACX,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO;SACV;;;;QAID,MAAM,SAAS,GAAG,SAAS,CAAC,gBAAgB,CAAc,iCAAiC,CAAC,CAAC;QAC7F,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,KAAK,GAAG,KAAK,CAAC;AAClB,QAAA,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;YAC1B,IAAI,KAAK,EAAE;AACP,gBAAA,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC;aAC/B;AACD,YAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;gBACnB,KAAK,GAAG,IAAI,CAAC;aAChB;SACJ;QACD,MAAM,KAAK,GAAG,CAAA,EAAG,MAAM,GAAG,iCAAiC,GAAG,QAAQ,GAAG,qBAAqB,CAAA,EAAA,CAAI,CAAC;AACnG,QAAA,IAAI,KAAK,KAAK,KAAK,EAAE;AACjB,YAAA,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC;AAC3B,YAAA,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACxC,OAAO;SACV;AACD,QAAA,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;AAC9B,QAAA,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KACxC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAEjC,eAAe,CAAC,MAAK;AACjB,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,QAAQ,IAAI,SAAS,KAAK,YAAY,CAAC,OAAO,EAAE;YACjD,OAAO,KAAK,CAAC,CAAC;SACjB;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;AACrD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACzC,OAAO,KAAK,CAAC,CAAC;SACjB;;;QAGD,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,SAAS,CAAC,OAAO,CAAA,EAAA,CAAI,CAAC;AAChD,QAAA,KAAK,QAAQ,CAAC,WAAW,CAAC;QAC1B,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAG,EAAA,KAAK,IAAI,CAAC;AACpC,QAAA,MAAM,KAAK,GAAG,CAAC,KAAsB,KAAI;AACrC,YAAA,IAAI,KAAK,CAAC,YAAY,KAAK,OAAO,EAAE;gBAChC,OAAO;aACV;AACD,YAAA,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AACvC,YAAA,QAAQ,CAAC,mBAAmB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;AACzD,SAAC,CAAC;AACF,QAAA,QAAQ,CAAC,gBAAgB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;AAClD,QAAA,YAAY,CAAC,OAAO,GAAG,SAAS,CAAC;AACjC,QAAA,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;AAE1B,QAAA,OAAO,MAAK;AACR,YAAA,QAAQ,CAAC,mBAAmB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;AACrD,YAAA,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAC3C,SAAC,CAAC;AACN,KAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,WAAW,GAAG,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;AACtD,IAAA,MAAM,UAAU,GACZ,UAAU,KAAK,sBAAsB,CAAC,IAAI;AACtC,UAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;AACrC,UAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAExC,QACIA,IAAC,aAAa,EAAA,EACV,MAAM,EACN,IAAA,EAAA,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,OAAO,EACX,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAK;AACV,YAAA,OAAO,EAAE,CAAC;AACd,SAAC,EACD,SAAS,EAAE,MAAK;YACZ,IAAI,WAAW,EAAE;AACb,gBAAA,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;aAChC;AACL,SAAC,EACD,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,OAAO,EAEhB,QAAA,EAAAA,GAAA,CAAC,YAAY,EACR,EAAA,QAAA,EAAA,CAAC,UAAU,MACRA,GAAA,CAAC,KAAK,EAAA,EAAC,KAAK,EAAC,UAAU,YACnBA,GACQ,CAAA,KAAA,EAAA,EAAA,GAAA,KAAK,KACL,cAAc,EAClB,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE;AAC/C,wBAAA,CAAC,MAAM,CAAC,iBAAiB,GAAG,SAAS;wBACrC,CAAC,MAAM,CAAC,CAAkB,eAAA,EAAA,KAAK,EAAE,CAAC,GAAG,KAAK;AAC1C,wBAAA,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,WAAW;qBACxC,CAAC,EACF,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,CAAC,KAAK,KAAI;AACf,wBAAA,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;4BACrE,WAAW,CAAC,IAAI,CAAC,CAAC;yBACrB;qBACJ,EACD,MAAM,EAAE,MAAM,CAAC,kBAAkB,CAAC,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,EAC/D,YAAY,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC,EACrC,YAAY,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC,EACd,wBAAA,EAAA,IAAI,EAE5B,QAAA,EAAAC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,eAAe,EACjC,QAAA,EAAA,CAAA,CAAC,CAAC,KAAK,KACJD,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,aAAa,aAAU,gBAAgB,EAAA,QAAA,EACzD,KAAK,EAAA,CACJ,CACT,EACA,CAAC,CAAC,YAAY,IAAI,SAAS,KACxBA,aAAK,SAAS,EAAE,MAAM,CAAC,aAAa,EAAA,SAAA,EAAU,gBAAgB,EAAA,QAAA,EAC1DA,GAAC,CAAA,KAAK,EACF,EAAA,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,QAAQ,IAAI,QAAQ,EAC3B,QAAQ,EAAE,YAAY,EAAA,CACxB,EACA,CAAA,CACT,EACDA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,mBAAmB,EACtC,QAAA,EAAAA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,EAAC,oBAAoB,EACvD,QAAA,EAAA,QAAQ,EACP,CAAA,EAAA,CACJ,EACL,WAAW,KACRA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,OAAO,EAC1B,QAAA,EAAAA,GAAA,CAAC,OAAO,EAAA,EAAC,IAAI,EAAC,UAAU,EAAA,CAAG,EACzB,CAAA,CACT,EACA,CAAC,CAAC,WAAW,KACVA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,MAAM,EACzB,QAAA,EAAAA,GAAA,CAAC,IAAI,EAAA,EAAA,SAAA,EACO,sBAAsB,EAAA,YAAA,EAClB,WAAW,EACvB,OAAO,EAAC,QAAQ,EAChB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,UAAU,EACnB,UAAU,EAAC,qBAAqB,EAChC,KAAK,EAAC,UAAU,EAAA,QAAA,EAEf,WAAW,EACT,CAAA,EAAA,CACL,CACT,EACA,SAAS,KACNA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,aAAa,EAChC,QAAA,EAAAA,GAAA,CAAC,mBAAmB,EAAA,EAChB,OAAO,EAAE,CAAC,EACV,YAAY,EAAC,YAAY,EACzB,YAAY,EAAC,oBAAoB,EACzB,SAAA,EAAA,uBAAuB,EAC/B,QAAQ,EAAE,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,EAE1B,YAAA,EAAA,WAAW,IAAI,OAAO,cAAc,KAAK,QAAQ;AAC7C,0CAAE,cAAc;AAChB,0CAAE,SAAS,EAEnB,OAAO,EAAE,SAAS,EACpB,CAAA,EAAA,CACA,CACT,CAAA,EAAA,CACC,GACJ,EACF,CAAA,CACX,EACU,CAAA,EAAA,CACH,EAClB;AACN;;;;"}
package/index.css CHANGED
@@ -1,75 +1,75 @@
1
1
  :root{
2
- --magritte-color-component-snackbar-background-content-v23-1-0:#000000;
3
- --magritte-color-component-snackbar-stroke-content-v23-1-0:#ffffff00;
4
- --magritte-color-component-snackbar-stroke-divider-v23-1-0:#303030;
5
- --magritte-color-component-snackbar-text-content-v23-1-0:#ffffff;
6
- --magritte-color-component-snackbar-text-action-v23-1-0:#78c0ff;
7
- --magritte-color-component-snackbar-text-state-action-hovered-v23-1-0:#8ac8ff;
8
- --magritte-color-component-snackbar-text-state-action-pressed-v23-1-0:#78c0ff;
2
+ --magritte-color-component-snackbar-background-content-v23-2-1:#000000;
3
+ --magritte-color-component-snackbar-stroke-content-v23-2-1:#ffffff00;
4
+ --magritte-color-component-snackbar-stroke-divider-v23-2-1:#303030;
5
+ --magritte-color-component-snackbar-text-content-v23-2-1:#ffffff;
6
+ --magritte-color-component-snackbar-text-action-v23-2-1:#78c0ff;
7
+ --magritte-color-component-snackbar-text-state-action-hovered-v23-2-1:#8ac8ff;
8
+ --magritte-color-component-snackbar-text-state-action-pressed-v23-2-1:#78c0ff;
9
9
  }
10
10
 
11
11
  :root{
12
- --magritte-typography-label-2-regular-font-family-v23-1-0:"hh sans";
13
- --magritte-typography-label-2-regular-font-weight-v23-1-0:400;
14
- --magritte-typography-label-2-regular-line-height-v23-1-0:22px;
15
- --magritte-typography-label-2-regular-font-size-v23-1-0:16px;
16
- --magritte-typography-label-2-regular-letter-spacing-v23-1-0:0em;
17
- --magritte-typography-label-2-regular-text-indent-v23-1-0:0px;
18
- --magritte-typography-label-2-regular-text-transform-v23-1-0:none;
19
- --magritte-typography-label-2-regular-text-decoration-v23-1-0:none;
20
- --magritte-semantic-animation-time-m-duration-v23-1-0:400ms;
21
- --magritte-semantic-animation-ease-base-timing-function-v23-1-0:cubic-bezier(0.4, 0.24, 0, 1);
22
- --magritte-semantic-blur-floating-v23-1-0:48px;
23
- --magritte-static-border-radius-400-v23-1-0:16px;
24
- --magritte-core-line-heights-600-v23-1-0:24;
12
+ --magritte-typography-label-2-regular-font-family-v23-2-1:"hh sans";
13
+ --magritte-typography-label-2-regular-font-weight-v23-2-1:400;
14
+ --magritte-typography-label-2-regular-line-height-v23-2-1:22px;
15
+ --magritte-typography-label-2-regular-font-size-v23-2-1:16px;
16
+ --magritte-typography-label-2-regular-letter-spacing-v23-2-1:0em;
17
+ --magritte-typography-label-2-regular-text-indent-v23-2-1:0px;
18
+ --magritte-typography-label-2-regular-text-transform-v23-2-1:none;
19
+ --magritte-typography-label-2-regular-text-decoration-v23-2-1:none;
20
+ --magritte-semantic-animation-time-m-duration-v23-2-1:400ms;
21
+ --magritte-semantic-animation-ease-base-timing-function-v23-2-1:cubic-bezier(0.4, 0.24, 0, 1);
22
+ --magritte-semantic-blur-floating-v23-2-1:48px;
23
+ --magritte-static-border-radius-400-v23-2-1:16px;
24
+ --magritte-core-line-heights-600-v23-2-1:24;
25
25
  }
26
26
 
27
27
  .magritte-night-theme{
28
- --magritte-color-component-snackbar-background-content-v23-1-0:#2e2e2ef5;
29
- --magritte-color-component-snackbar-stroke-content-v23-1-0:#ffffff00;
30
- --magritte-color-component-snackbar-stroke-divider-v23-1-0:#ffffff29;
31
- --magritte-color-component-snackbar-text-content-v23-1-0:#ffffff;
32
- --magritte-color-component-snackbar-text-action-v23-1-0:#78c0ff;
33
- --magritte-color-component-snackbar-text-state-action-hovered-v23-1-0:#8ac8ff;
34
- --magritte-color-component-snackbar-text-state-action-pressed-v23-1-0:#78c0ff;
28
+ --magritte-color-component-snackbar-background-content-v23-2-1:#2e2e2ef5;
29
+ --magritte-color-component-snackbar-stroke-content-v23-2-1:#ffffff00;
30
+ --magritte-color-component-snackbar-stroke-divider-v23-2-1:#ffffff29;
31
+ --magritte-color-component-snackbar-text-content-v23-2-1:#ffffff;
32
+ --magritte-color-component-snackbar-text-action-v23-2-1:#78c0ff;
33
+ --magritte-color-component-snackbar-text-state-action-hovered-v23-2-1:#8ac8ff;
34
+ --magritte-color-component-snackbar-text-state-action-pressed-v23-2-1:#78c0ff;
35
35
  }
36
36
 
37
37
  .magritte-zp-day-theme{
38
- --magritte-color-component-snackbar-background-content-v23-1-0:#000000;
39
- --magritte-color-component-snackbar-stroke-content-v23-1-0:#ffffff00;
40
- --magritte-color-component-snackbar-stroke-divider-v23-1-0:#303030;
41
- --magritte-color-component-snackbar-text-content-v23-1-0:#ffffff;
42
- --magritte-color-component-snackbar-text-action-v23-1-0:#78c0ff;
43
- --magritte-color-component-snackbar-text-state-action-hovered-v23-1-0:#8ac8ff;
44
- --magritte-color-component-snackbar-text-state-action-pressed-v23-1-0:#78c0ff;
45
- }
46
- .magritte-snackbar-container___SeRql_6-0-1{
38
+ --magritte-color-component-snackbar-background-content-v23-2-1:#000000;
39
+ --magritte-color-component-snackbar-stroke-content-v23-2-1:#ffffff00;
40
+ --magritte-color-component-snackbar-stroke-divider-v23-2-1:#303030;
41
+ --magritte-color-component-snackbar-text-content-v23-2-1:#ffffff;
42
+ --magritte-color-component-snackbar-text-action-v23-2-1:#78c0ff;
43
+ --magritte-color-component-snackbar-text-state-action-hovered-v23-2-1:#8ac8ff;
44
+ --magritte-color-component-snackbar-text-state-action-pressed-v23-2-1:#78c0ff;
45
+ }
46
+ .magritte-snackbar-container___SeRql_6-1-1{
47
47
  pointer-events:none;
48
48
  position:absolute;
49
49
  inset:0;
50
50
  overflow:hidden;
51
51
  }
52
- .magritte-snackbar-animation-timeout___EQLvG_6-0-1,
53
- .magritte-snackbar___jgq4H_6-0-1{
52
+ .magritte-snackbar-animation-timeout___EQLvG_6-1-1,
53
+ .magritte-snackbar___jgq4H_6-1-1{
54
54
  outline:none;
55
55
  padding:16px 20px;
56
56
  margin:0 auto;
57
- border-radius:var(--magritte-static-border-radius-400-v23-1-0);
58
- backdrop-filter:blur(var(--magritte-semantic-blur-floating-v23-1-0));
59
- -webkit-backdrop-filter:blur(var(--magritte-semantic-blur-floating-v23-1-0));
57
+ border-radius:var(--magritte-static-border-radius-400-v23-2-1);
58
+ backdrop-filter:blur(var(--magritte-semantic-blur-floating-v23-2-1));
59
+ -webkit-backdrop-filter:blur(var(--magritte-semantic-blur-floating-v23-2-1));
60
60
  box-sizing:border-box;
61
61
  will-change:transform;
62
- transition:top var(--stack-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-1-0), bottom var(--stack-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-1-0), width var(--resize-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-1-0);
63
- --show-animation-duration:var(--magritte-semantic-animation-time-m-duration-v23-1-0);
64
- --hide-animation-duration:var(--magritte-semantic-animation-time-m-duration-v23-1-0);
65
- --stack-animation-duration:var(--magritte-semantic-animation-time-m-duration-v23-1-0);
66
- --resize-animation-duration:var(--magritte-semantic-animation-time-m-duration-v23-1-0);
67
- --autohide-animation-duration:var(--magritte-semantic-animation-time-m-duration-v23-1-0);
62
+ transition:top var(--stack-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-2-1), bottom var(--stack-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-2-1), width var(--resize-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-2-1);
63
+ --show-animation-duration:var(--magritte-semantic-animation-time-m-duration-v23-2-1);
64
+ --hide-animation-duration:var(--magritte-semantic-animation-time-m-duration-v23-2-1);
65
+ --stack-animation-duration:var(--magritte-semantic-animation-time-m-duration-v23-2-1);
66
+ --resize-animation-duration:var(--magritte-semantic-animation-time-m-duration-v23-2-1);
67
+ --autohide-animation-duration:var(--magritte-semantic-animation-time-m-duration-v23-2-1);
68
68
  --removeImmediately-animation-duration:0;
69
69
  }
70
70
  @media (prefers-reduced-motion){
71
- .magritte-snackbar-animation-timeout___EQLvG_6-0-1,
72
- .magritte-snackbar___jgq4H_6-0-1{
71
+ .magritte-snackbar-animation-timeout___EQLvG_6-1-1,
72
+ .magritte-snackbar___jgq4H_6-1-1{
73
73
  --show-animation-duration:0;
74
74
  --hide-animation-duration:0;
75
75
  --stack-animation-duration:0;
@@ -79,137 +79,137 @@
79
79
  }
80
80
  }
81
81
  @media (min-width: 700px){
82
- body.magritte-old-layout .magritte-snackbar-animation-timeout___EQLvG_6-0-1,
83
- body.magritte-old-layout .magritte-snackbar___jgq4H_6-0-1{
82
+ body.magritte-old-layout .magritte-snackbar-animation-timeout___EQLvG_6-1-1,
83
+ body.magritte-old-layout .magritte-snackbar___jgq4H_6-1-1{
84
84
  max-width:600px;
85
85
  }
86
86
  }
87
87
  @media (min-width: 600px){
88
- body:not(.magritte-old-layout) .magritte-snackbar-animation-timeout___EQLvG_6-0-1,
89
- body:not(.magritte-old-layout) .magritte-snackbar___jgq4H_6-0-1{
88
+ body:not(.magritte-old-layout) .magritte-snackbar-animation-timeout___EQLvG_6-1-1,
89
+ body:not(.magritte-old-layout) .magritte-snackbar___jgq4H_6-1-1{
90
90
  max-width:600px;
91
91
  }
92
92
  }
93
- .magritte-snackbar-animation-timeout___EQLvG_6-0-1{
93
+ .magritte-snackbar-animation-timeout___EQLvG_6-1-1{
94
94
  display:none;
95
95
  }
96
- .magritte-snackbar___jgq4H_6-0-1{
97
- background:var(--magritte-color-component-snackbar-background-content-v23-1-0);
98
- color:var(--magritte-color-component-snackbar-text-content-v23-1-0);
99
- box-shadow:inset 0 0 0 1px var(--magritte-color-component-snackbar-stroke-content-v23-1-0);
96
+ .magritte-snackbar___jgq4H_6-1-1{
97
+ background:var(--magritte-color-component-snackbar-background-content-v23-2-1);
98
+ color:var(--magritte-color-component-snackbar-text-content-v23-2-1);
99
+ box-shadow:inset 0 0 0 1px var(--magritte-color-component-snackbar-stroke-content-v23-2-1);
100
100
  position:absolute;
101
101
  pointer-events:auto;
102
102
  width:max-content;
103
103
  }
104
- .magritte-snackbar_stretched___xVhgJ_6-0-1{
104
+ .magritte-snackbar_stretched___xVhgJ_6-1-1{
105
105
  width:auto;
106
106
  }
107
- .magritte-snackbar_align-top___WWWbk_6-0-1{
107
+ .magritte-snackbar_align-top___WWWbk_6-1-1{
108
108
  inset:16px 8px auto;
109
109
  }
110
110
  @media (min-width: 1020px){
111
- body.magritte-old-layout .magritte-snackbar_align-top___WWWbk_6-0-1{
111
+ body.magritte-old-layout .magritte-snackbar_align-top___WWWbk_6-1-1{
112
112
  inset:16px 16px auto 16px;
113
113
  }
114
114
  }
115
115
  @media (min-width: 1024px){
116
- body:not(.magritte-old-layout) .magritte-snackbar_align-top___WWWbk_6-0-1{
116
+ body:not(.magritte-old-layout) .magritte-snackbar_align-top___WWWbk_6-1-1{
117
117
  inset:16px 16px auto 16px;
118
118
  }
119
119
  }
120
- .magritte-snackbar_align-bottom___tCBBP_6-0-1{
120
+ .magritte-snackbar_align-bottom___tCBBP_6-1-1{
121
121
  inset:auto 8px 16px;
122
122
  }
123
123
  @media (min-width: 1020px){
124
- body.magritte-old-layout .magritte-snackbar_align-bottom___tCBBP_6-0-1{
124
+ body.magritte-old-layout .magritte-snackbar_align-bottom___tCBBP_6-1-1{
125
125
  inset:auto 16px 16px 16px;
126
126
  }
127
127
  }
128
128
  @media (min-width: 1024px){
129
- body:not(.magritte-old-layout) .magritte-snackbar_align-bottom___tCBBP_6-0-1{
129
+ body:not(.magritte-old-layout) .magritte-snackbar_align-bottom___tCBBP_6-1-1{
130
130
  inset:auto 16px 16px 16px;
131
131
  }
132
132
  }
133
- .magritte-snackbar-in-body___Zer4o_6-0-1{
133
+ .magritte-snackbar-in-body___Zer4o_6-1-1{
134
134
  position:fixed;
135
135
  }
136
- .magritte-snackbar-content___MlP5J_6-0-1{
136
+ .magritte-snackbar-content___MlP5J_6-1-1{
137
137
  display:flex;
138
138
  align-items:center;
139
139
  }
140
- .magritte-snackbar-addon___-eJn7_6-0-1{
140
+ .magritte-snackbar-addon___-eJn7_6-1-1{
141
141
  margin-right:12px;
142
142
  width:24px;
143
143
  height:24px;
144
144
  margin-left:-4px;
145
145
  }
146
- .magritte-snackbar-text___PCxnB_6-0-1{
147
- font-family:var(--magritte-typography-label-2-regular-font-family-v23-1-0);
148
- font-weight:var(--magritte-typography-label-2-regular-font-weight-v23-1-0);
149
- line-height:var(--magritte-typography-label-2-regular-line-height-v23-1-0);
150
- font-size:var(--magritte-typography-label-2-regular-font-size-v23-1-0);
151
- letter-spacing:var(--magritte-typography-label-2-regular-letter-spacing-v23-1-0);
152
- text-indent:var(--magritte-typography-label-2-regular-text-indent-v23-1-0);
153
- text-transform:var(--magritte-typography-label-2-regular-text-transform-v23-1-0);
154
- text-decoration:var(--magritte-typography-label-2-regular-text-decoration-v23-1-0);
146
+ .magritte-snackbar-text___PCxnB_6-1-1{
147
+ font-family:var(--magritte-typography-label-2-regular-font-family-v23-2-1);
148
+ font-weight:var(--magritte-typography-label-2-regular-font-weight-v23-2-1);
149
+ line-height:var(--magritte-typography-label-2-regular-line-height-v23-2-1);
150
+ font-size:var(--magritte-typography-label-2-regular-font-size-v23-2-1);
151
+ letter-spacing:var(--magritte-typography-label-2-regular-letter-spacing-v23-2-1);
152
+ text-indent:var(--magritte-typography-label-2-regular-text-indent-v23-2-1);
153
+ text-transform:var(--magritte-typography-label-2-regular-text-transform-v23-2-1);
154
+ text-decoration:var(--magritte-typography-label-2-regular-text-decoration-v23-2-1);
155
155
  margin-right:auto;
156
156
  }
157
- .magritte-snackbar-text-wrapper___SH6YB_6-0-1{
157
+ .magritte-snackbar-text-wrapper___SH6YB_6-1-1{
158
158
  display:flex;
159
159
  width:100%;
160
160
  }
161
- .magritte-action___Yjp2t_6-0-1{
161
+ .magritte-action___Yjp2t_6-1-1{
162
162
  display:flex;
163
163
  align-items:center;
164
164
  margin-left:8px;
165
- height:calc(var(--magritte-core-line-heights-600-v23-1-0) * 1px);
165
+ height:calc(var(--magritte-core-line-heights-600-v23-2-1) * 1px);
166
166
  white-space:nowrap;
167
167
  --magritte-ui-link-padding-override:12px;
168
- --magritte-ui-link-text-color-override:var(--magritte-color-component-snackbar-text-action-v23-1-0);
169
- --magritte-ui-link-text-color-hovered-override:var(--magritte-color-component-snackbar-text-state-action-hovered-v23-1-0);
170
- --magritte-ui-link-text-color-pressed-override:var(--magritte-color-component-snackbar-text-state-action-pressed-v23-1-0);
168
+ --magritte-ui-link-text-color-override:var(--magritte-color-component-snackbar-text-action-v23-2-1);
169
+ --magritte-ui-link-text-color-hovered-override:var(--magritte-color-component-snackbar-text-state-action-hovered-v23-2-1);
170
+ --magritte-ui-link-text-color-pressed-override:var(--magritte-color-component-snackbar-text-state-action-pressed-v23-2-1);
171
171
  }
172
- .magritte-snackbar-close___U8YT5_6-0-1{
173
- height:calc(var(--magritte-core-line-heights-600-v23-1-0) * 1px);
172
+ .magritte-snackbar-close___U8YT5_6-1-1{
173
+ height:calc(var(--magritte-core-line-heights-600-v23-2-1) * 1px);
174
174
  display:flex;
175
175
  align-items:center;
176
176
  margin-right:-12px;
177
177
  }
178
- .magritte-divider___GQ492_6-0-1{
178
+ .magritte-divider___GQ492_6-1-1{
179
179
  align-self:stretch;
180
180
  margin-top:-8px;
181
181
  margin-bottom:-8px;
182
182
  margin-left:16px;
183
183
  margin-right:8px;
184
- --magritte-ui-divider-color-override:var(--magritte-color-component-snackbar-stroke-divider-v23-1-0);
184
+ --magritte-ui-divider-color-override:var(--magritte-color-component-snackbar-stroke-divider-v23-2-1);
185
185
  }
186
- .magritte-appearTop___UJQ6-_6-0-1{
186
+ .magritte-appearTop___UJQ6-_6-1-1{
187
187
  transform:translateY(calc(var(--snackbar-offset, 60px) * -1 + 16px * -1));
188
188
  }
189
- .magritte-appearBottom___wDoOa_6-0-1{
189
+ .magritte-appearBottom___wDoOa_6-1-1{
190
190
  transform:translateY(calc(var(--snackbar-offset, 60px) + 16px));
191
191
  }
192
- .magritte-appear-active___Kl7by_6-0-1{
192
+ .magritte-appear-active___Kl7by_6-1-1{
193
193
  transform:translateY(0);
194
- transition:opacity var(--hide-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-1-0), transform var(--show-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-1-0), top var(--stack-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-1-0), bottom var(--stack-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-1-0);
194
+ transition:opacity var(--hide-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-2-1), transform var(--show-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-2-1), top var(--stack-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-2-1), bottom var(--stack-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-2-1);
195
195
  }
196
- .magritte-appear-done___3g7bl_6-0-1{
196
+ .magritte-appear-done___3g7bl_6-1-1{
197
197
  transform:translateY(0);
198
198
  }
199
- .magritte-exit___MsYCK_6-0-1{
199
+ .magritte-exit___MsYCK_6-1-1{
200
200
  opacity:1;
201
201
  }
202
- .magritte-exit-active___I4AYt_6-0-1{
202
+ .magritte-exit-active___I4AYt_6-1-1{
203
203
  opacity:0;
204
204
  transform:scale(0.75);
205
- transition:opacity var(--hide-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-1-0), transform var(--hide-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-1-0), top var(--stack-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-1-0), bottom var(--stack-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-1-0);
205
+ transition:opacity var(--hide-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-2-1), transform var(--hide-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-2-1), top var(--stack-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-2-1), bottom var(--stack-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-2-1);
206
206
  }
207
- .magritte-exit-active_autohide___jvdWc_6-0-1{
207
+ .magritte-exit-active_autohide___jvdWc_6-1-1{
208
208
  opacity:0;
209
209
  transform:scale(0.75);
210
- transition:opacity var(--hide-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-1-0), transform var(--hide-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-1-0), top var(--stack-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-1-0), bottom var(--stack-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-1-0);
210
+ transition:opacity var(--hide-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-2-1), transform var(--hide-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-2-1), top var(--stack-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-2-1), bottom var(--stack-animation-duration) var(--magritte-semantic-animation-ease-base-timing-function-v23-2-1);
211
211
  }
212
- .magritte-exit-done___DK8l2_6-0-1{
212
+ .magritte-exit-done___DK8l2_6-1-1{
213
213
  opacity:0;
214
214
  transform:scale(0.75);
215
215
  }
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-BUXYCBno.js';
10
+ import './snackbar-C7_RNDO5.js';
11
11
  import 'react-dom';
12
12
  import './SnackbarRenderer.js';
13
13
  import 'react-transition-group';
@@ -19,5 +19,6 @@ import '@hh.ru/magritte-ui-divider';
19
19
  import '@hh.ru/magritte-ui-icon/icon';
20
20
  import '@hh.ru/magritte-ui-layer';
21
21
  import '@hh.ru/magritte-ui-link';
22
+ import '@hh.ru/magritte-ui-theme-wrapper';
22
23
  import '@hh.ru/magritte-ui-timer';
23
24
  //# 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-snackbar",
3
- "version": "6.0.1",
3
+ "version": "6.1.1",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "sideEffects": [
@@ -19,22 +19,23 @@
19
19
  "watch": "yarn root:watch $(pwd)"
20
20
  },
21
21
  "dependencies": {
22
- "@hh.ru/magritte-common-func-utils": "1.3.12",
23
- "@hh.ru/magritte-common-keyboard": "4.1.2",
24
- "@hh.ru/magritte-common-resize": "0.1.16",
25
- "@hh.ru/magritte-common-use-multiple-refs": "1.1.8",
26
- "@hh.ru/magritte-common-use-swipe": "3.1.6",
27
- "@hh.ru/magritte-design-tokens": "23.1.0",
22
+ "@hh.ru/magritte-common-func-utils": "1.3.13",
23
+ "@hh.ru/magritte-common-keyboard": "4.1.3",
24
+ "@hh.ru/magritte-common-resize": "0.1.17",
25
+ "@hh.ru/magritte-common-use-multiple-refs": "1.1.9",
26
+ "@hh.ru/magritte-common-use-swipe": "3.1.7",
27
+ "@hh.ru/magritte-design-tokens": "23.2.1",
28
28
  "@hh.ru/magritte-internal-layer-name": "3.0.2",
29
- "@hh.ru/magritte-ui-divider": "3.0.3",
30
- "@hh.ru/magritte-ui-icon": "12.3.0",
31
- "@hh.ru/magritte-ui-layer": "3.0.2",
32
- "@hh.ru/magritte-ui-link": "6.0.8",
33
- "@hh.ru/magritte-ui-timer": "1.2.58",
34
- "@hh.ru/magritte-ui-typography": "4.2.0"
29
+ "@hh.ru/magritte-ui-divider": "3.0.5",
30
+ "@hh.ru/magritte-ui-icon": "12.3.2",
31
+ "@hh.ru/magritte-ui-layer": "3.0.3",
32
+ "@hh.ru/magritte-ui-link": "6.0.10",
33
+ "@hh.ru/magritte-ui-theme-wrapper": "1.1.1",
34
+ "@hh.ru/magritte-ui-timer": "1.2.60",
35
+ "@hh.ru/magritte-ui-typography": "4.2.2"
35
36
  },
36
37
  "devDependencies": {
37
- "@hh.ru/magritte-ui-breakpoint": "6.0.0"
38
+ "@hh.ru/magritte-ui-breakpoint": "6.0.1"
38
39
  },
39
40
  "peerDependencies": {
40
41
  "classnames": ">=2.3.2",
@@ -45,5 +46,5 @@
45
46
  "publishConfig": {
46
47
  "access": "public"
47
48
  },
48
- "gitHead": "7d23d2d4ae89834e27894b920fd6e2c59e8c3a4c"
49
+ "gitHead": "18a4c9f53b8572077ce0fba28266865c1b619cee"
49
50
  }
@@ -0,0 +1,5 @@
1
+ import './index.css';
2
+ var styles = {"snackbar-container":"magritte-snackbar-container___SeRql_6-1-1","snackbarContainer":"magritte-snackbar-container___SeRql_6-1-1","snackbar-animation-timeout":"magritte-snackbar-animation-timeout___EQLvG_6-1-1","snackbarAnimationTimeout":"magritte-snackbar-animation-timeout___EQLvG_6-1-1","snackbar":"magritte-snackbar___jgq4H_6-1-1","snackbar_stretched":"magritte-snackbar_stretched___xVhgJ_6-1-1","snackbarStretched":"magritte-snackbar_stretched___xVhgJ_6-1-1","snackbar_align-top":"magritte-snackbar_align-top___WWWbk_6-1-1","snackbarAlignTop":"magritte-snackbar_align-top___WWWbk_6-1-1","snackbar_align-bottom":"magritte-snackbar_align-bottom___tCBBP_6-1-1","snackbarAlignBottom":"magritte-snackbar_align-bottom___tCBBP_6-1-1","snackbar-in-body":"magritte-snackbar-in-body___Zer4o_6-1-1","snackbarInBody":"magritte-snackbar-in-body___Zer4o_6-1-1","snackbar-content":"magritte-snackbar-content___MlP5J_6-1-1","snackbarContent":"magritte-snackbar-content___MlP5J_6-1-1","snackbar-addon":"magritte-snackbar-addon___-eJn7_6-1-1","snackbarAddon":"magritte-snackbar-addon___-eJn7_6-1-1","snackbar-text":"magritte-snackbar-text___PCxnB_6-1-1","snackbarText":"magritte-snackbar-text___PCxnB_6-1-1","snackbar-text-wrapper":"magritte-snackbar-text-wrapper___SH6YB_6-1-1","snackbarTextWrapper":"magritte-snackbar-text-wrapper___SH6YB_6-1-1","action":"magritte-action___Yjp2t_6-1-1","snackbar-close":"magritte-snackbar-close___U8YT5_6-1-1","snackbarClose":"magritte-snackbar-close___U8YT5_6-1-1","divider":"magritte-divider___GQ492_6-1-1","appearTop":"magritte-appearTop___UJQ6-_6-1-1","appearBottom":"magritte-appearBottom___wDoOa_6-1-1","appear-active":"magritte-appear-active___Kl7by_6-1-1","appearActive":"magritte-appear-active___Kl7by_6-1-1","appear-done":"magritte-appear-done___3g7bl_6-1-1","appearDone":"magritte-appear-done___3g7bl_6-1-1","exit":"magritte-exit___MsYCK_6-1-1","exit-active":"magritte-exit-active___I4AYt_6-1-1","exitActive":"magritte-exit-active___I4AYt_6-1-1","exit-active_autohide":"magritte-exit-active_autohide___jvdWc_6-1-1","exitActiveAutohide":"magritte-exit-active_autohide___jvdWc_6-1-1","exit-done":"magritte-exit-done___DK8l2_6-1-1","exitDone":"magritte-exit-done___DK8l2_6-1-1"};
3
+
4
+ export { styles as s };
5
+ //# sourceMappingURL=snackbar-C7_RNDO5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snackbar-C7_RNDO5.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,5 +0,0 @@
1
- import './index.css';
2
- var styles = {"snackbar-container":"magritte-snackbar-container___SeRql_6-0-1","snackbarContainer":"magritte-snackbar-container___SeRql_6-0-1","snackbar-animation-timeout":"magritte-snackbar-animation-timeout___EQLvG_6-0-1","snackbarAnimationTimeout":"magritte-snackbar-animation-timeout___EQLvG_6-0-1","snackbar":"magritte-snackbar___jgq4H_6-0-1","snackbar_stretched":"magritte-snackbar_stretched___xVhgJ_6-0-1","snackbarStretched":"magritte-snackbar_stretched___xVhgJ_6-0-1","snackbar_align-top":"magritte-snackbar_align-top___WWWbk_6-0-1","snackbarAlignTop":"magritte-snackbar_align-top___WWWbk_6-0-1","snackbar_align-bottom":"magritte-snackbar_align-bottom___tCBBP_6-0-1","snackbarAlignBottom":"magritte-snackbar_align-bottom___tCBBP_6-0-1","snackbar-in-body":"magritte-snackbar-in-body___Zer4o_6-0-1","snackbarInBody":"magritte-snackbar-in-body___Zer4o_6-0-1","snackbar-content":"magritte-snackbar-content___MlP5J_6-0-1","snackbarContent":"magritte-snackbar-content___MlP5J_6-0-1","snackbar-addon":"magritte-snackbar-addon___-eJn7_6-0-1","snackbarAddon":"magritte-snackbar-addon___-eJn7_6-0-1","snackbar-text":"magritte-snackbar-text___PCxnB_6-0-1","snackbarText":"magritte-snackbar-text___PCxnB_6-0-1","snackbar-text-wrapper":"magritte-snackbar-text-wrapper___SH6YB_6-0-1","snackbarTextWrapper":"magritte-snackbar-text-wrapper___SH6YB_6-0-1","action":"magritte-action___Yjp2t_6-0-1","snackbar-close":"magritte-snackbar-close___U8YT5_6-0-1","snackbarClose":"magritte-snackbar-close___U8YT5_6-0-1","divider":"magritte-divider___GQ492_6-0-1","appearTop":"magritte-appearTop___UJQ6-_6-0-1","appearBottom":"magritte-appearBottom___wDoOa_6-0-1","appear-active":"magritte-appear-active___Kl7by_6-0-1","appearActive":"magritte-appear-active___Kl7by_6-0-1","appear-done":"magritte-appear-done___3g7bl_6-0-1","appearDone":"magritte-appear-done___3g7bl_6-0-1","exit":"magritte-exit___MsYCK_6-0-1","exit-active":"magritte-exit-active___I4AYt_6-0-1","exitActive":"magritte-exit-active___I4AYt_6-0-1","exit-active_autohide":"magritte-exit-active_autohide___jvdWc_6-0-1","exitActiveAutohide":"magritte-exit-active_autohide___jvdWc_6-0-1","exit-done":"magritte-exit-done___DK8l2_6-0-1","exitDone":"magritte-exit-done___DK8l2_6-0-1"};
3
-
4
- export { styles as s };
5
- //# sourceMappingURL=snackbar-BUXYCBno.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"snackbar-BUXYCBno.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}