@hh.ru/magritte-ui-tooltip 9.3.10 → 9.3.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Tooltip.js +6 -11
- package/Tooltip.js.map +1 -1
- package/index.css +83 -78
- package/package.json +8 -8
package/Tooltip.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import './index.css';
|
|
2
2
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
-
import { forwardRef, useId, useState,
|
|
3
|
+
import { forwardRef, useId, useState, useRef, useLayoutEffect } from 'react';
|
|
4
4
|
import classnames from 'classnames';
|
|
5
|
-
import { DropBase } from '@hh.ru/magritte-internal-drop-base';
|
|
5
|
+
import { usePlacement, DropBase } from '@hh.ru/magritte-internal-drop-base';
|
|
6
6
|
import { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';
|
|
7
7
|
import { STRETCHED_WRAPPER_CLASS } from '@hh.ru/magritte-ui-button';
|
|
8
8
|
import { CrossOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';
|
|
@@ -11,7 +11,7 @@ import { TooltipArrow } from './TooltipArrow.js';
|
|
|
11
11
|
import { Text } from '@hh.ru/magritte-ui-typography';
|
|
12
12
|
import { BaseText } from '@hh.ru/magritte-ui-typography/BaseText';
|
|
13
13
|
|
|
14
|
-
var styles = {"medium-tooltip-with-buttons-params":"magritte-medium-tooltip-with-buttons-params___krjlq_9-3-
|
|
14
|
+
var styles = {"medium-tooltip-with-buttons-params":"magritte-medium-tooltip-with-buttons-params___krjlq_9-3-12","mediumTooltipWithButtonsParams":"magritte-medium-tooltip-with-buttons-params___krjlq_9-3-12","medium-tooltip-params":"magritte-medium-tooltip-params___2qZnY_9-3-12","mediumTooltipParams":"magritte-medium-tooltip-params___2qZnY_9-3-12","small-tooltip-params":"magritte-small-tooltip-params___N8y51_9-3-12","smallTooltipParams":"magritte-small-tooltip-params___N8y51_9-3-12","tooltip":"magritte-tooltip___Hxyh2_9-3-12","tooltip-with-buttons":"magritte-tooltip-with-buttons___pQzdt_9-3-12","tooltipWithButtons":"magritte-tooltip-with-buttons___pQzdt_9-3-12","tooltip-with-close":"magritte-tooltip-with-close___2iNPt_9-3-12","tooltipWithClose":"magritte-tooltip-with-close___2iNPt_9-3-12","tooltip-small":"magritte-tooltip-small___W1eTg_9-3-12","tooltipSmall":"magritte-tooltip-small___W1eTg_9-3-12","tooltip-title":"magritte-tooltip-title___s-ekd_9-3-12","tooltipTitle":"magritte-tooltip-title___s-ekd_9-3-12","tooltip-close":"magritte-tooltip-close___B1qWh_9-3-12","tooltipClose":"magritte-tooltip-close___B1qWh_9-3-12","tooltip-enter":"magritte-tooltip-enter___cnped_9-3-12","tooltipEnter":"magritte-tooltip-enter___cnped_9-3-12","css-variables-element":"magritte-css-variables-element___yRnOI_9-3-12","cssVariablesElement":"magritte-css-variables-element___yRnOI_9-3-12","tooltip-enter-active":"magritte-tooltip-enter-active___M8qsm_9-3-12","tooltipEnterActive":"magritte-tooltip-enter-active___M8qsm_9-3-12","tooltip-exit":"magritte-tooltip-exit___IXkNp_9-3-12","tooltipExit":"magritte-tooltip-exit___IXkNp_9-3-12","tooltip-exit-active":"magritte-tooltip-exit-active___QllYr_9-3-12","tooltipExitActive":"magritte-tooltip-exit-active___QllYr_9-3-12","tooltip-buttons":"magritte-tooltip-buttons___kNN5e_9-3-12","tooltipButtons":"magritte-tooltip-buttons___kNN5e_9-3-12","tooltip-arrow":"magritte-tooltip-arrow___7OOYT_9-3-12","tooltipArrow":"magritte-tooltip-arrow___7OOYT_9-3-12"};
|
|
15
15
|
|
|
16
16
|
const CSS_CLASSES = {
|
|
17
17
|
enter: styles.tooltipEnter,
|
|
@@ -19,7 +19,7 @@ const CSS_CLASSES = {
|
|
|
19
19
|
exit: styles.tooltipExit,
|
|
20
20
|
exitActive: styles.tooltipExitActive,
|
|
21
21
|
};
|
|
22
|
-
const
|
|
22
|
+
const AVAILABLE_PLACEMENTS_LIST = new Set([
|
|
23
23
|
'left-center',
|
|
24
24
|
'top-center',
|
|
25
25
|
'right-center',
|
|
@@ -32,7 +32,7 @@ const PLACEMENTS_LIST = [
|
|
|
32
32
|
'right-top',
|
|
33
33
|
'bottom-left',
|
|
34
34
|
'bottom-right',
|
|
35
|
-
];
|
|
35
|
+
]);
|
|
36
36
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
37
37
|
const noop = () => { };
|
|
38
38
|
const Tooltip = forwardRef(({ visible, activatorRef, onClose = noop, maxWidth = 400, title, children, showClose, closeByClickOutside = true, placement, buttons, forcePlacement, 'aria-label-close': ariaLabelClose, role, size = 'medium', ignoreIntersections = true, lockPlacement = true, guardDistanceToActivator: _guardDistanceToActivator, ...props }, ref) => {
|
|
@@ -47,12 +47,7 @@ const Tooltip = forwardRef(({ visible, activatorRef, onClose = noop, maxWidth =
|
|
|
47
47
|
top: { left: 0, center: 0, right: 0 },
|
|
48
48
|
bottom: { left: 0, center: 0, right: 0 },
|
|
49
49
|
});
|
|
50
|
-
const placementsList =
|
|
51
|
-
const placementsArray = Array.isArray(placement) ? placement : [placement];
|
|
52
|
-
return forcePlacement
|
|
53
|
-
? placementsArray
|
|
54
|
-
: [...placementsArray, ...PLACEMENTS_LIST.filter((place) => !placement.includes(place))];
|
|
55
|
-
}, [placement, forcePlacement]);
|
|
50
|
+
const placementsList = usePlacement(placement, AVAILABLE_PLACEMENTS_LIST, !!forcePlacement);
|
|
56
51
|
const tooltipElementRef = useRef(null);
|
|
57
52
|
const ariaRole = role || (buttons ? 'alertdialog' : 'tooltip');
|
|
58
53
|
const isSmall = size === 'small';
|
package/Tooltip.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","sources":["../src/Tooltip.tsx"],"sourcesContent":["import { type ReactElement, useLayoutEffect, useId, useState, useMemo, useRef, forwardRef } from 'react';\nimport classnames from 'classnames';\n\nimport { DropBase, type Placement } from '@hh.ru/magritte-internal-drop-base';\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\nimport { STRETCHED_WRAPPER_CLASS } from '@hh.ru/magritte-ui-button';\nimport { CrossOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';\nimport { Layer } from '@hh.ru/magritte-ui-layer';\nimport { TooltipArrow } from '@hh.ru/magritte-ui-tooltip/TooltipArrow';\nimport { TooltipProps } from '@hh.ru/magritte-ui-tooltip/types';\nimport { Text } from '@hh.ru/magritte-ui-typography';\nimport { BaseText } from '@hh.ru/magritte-ui-typography/BaseText';\n\nimport styles from './tooltip.less';\n\nconst CSS_CLASSES = {\n enter: styles.tooltipEnter,\n enterActive: styles.tooltipEnterActive,\n exit: styles.tooltipExit,\n exitActive: styles.tooltipExitActive,\n};\n\nconst PLACEMENTS_LIST: Placement[] = [\n 'left-center',\n 'top-center',\n 'right-center',\n 'bottom-center',\n 'left-top',\n 'left-bottom',\n 'top-left',\n 'top-right',\n 'right-bottom',\n 'right-top',\n 'bottom-left',\n 'bottom-right',\n];\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = () => {};\n\nexport const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(\n (\n {\n visible,\n activatorRef,\n onClose = noop,\n maxWidth = 400,\n title,\n children,\n showClose,\n closeByClickOutside = true,\n placement,\n buttons,\n forcePlacement,\n 'aria-label-close': ariaLabelClose,\n role,\n size = 'medium',\n ignoreIntersections = true,\n lockPlacement = true,\n guardDistanceToActivator: _guardDistanceToActivator,\n ...props\n }: TooltipProps,\n ref\n ): ReactElement | null => {\n const { isMobile } = useBreakpoint();\n const id = useId();\n const ariaLabledBy = `tooltip-aria-label-${id}`;\n const ariaDescribedBy = `tooltip-aria-description-${id}`;\n const [animationTimeout, setAnimationTimeout] = useState(200);\n const [arrowGuardDistance, setArrowGuardDistance] = useState({\n left: { top: 0, bottom: 0, center: 0 },\n right: { top: 0, bottom: 0, center: 0 },\n top: { left: 0, center: 0, right: 0 },\n bottom: { left: 0, center: 0, right: 0 },\n });\n const placementsList = useMemo(() => {\n const placementsArray: Placement[] = Array.isArray(placement) ? placement : [placement];\n return forcePlacement\n ? placementsArray\n : [...placementsArray, ...PLACEMENTS_LIST.filter((place) => !placement.includes(place))];\n }, [placement, forcePlacement]);\n const tooltipElementRef = useRef<HTMLDivElement>(null);\n\n const ariaRole = role || (buttons ? 'alertdialog' : 'tooltip');\n const isSmall = size === 'small';\n const hasButtons = !!buttons;\n const guardDistanceToActivator = _guardDistanceToActivator ?? (isSmall ? 11 : 20);\n\n useLayoutEffect(() => {\n const parametersContainer = document.createElement('div');\n parametersContainer.style.display = 'none';\n const cssClass = classnames({\n [styles.mediumTooltipWithButtonsParams]: !isSmall && hasButtons,\n [styles.mediumTooltipParams]: !isSmall && !hasButtons,\n [styles.smallTooltipParams]: isSmall,\n });\n parametersContainer.classList.add(cssClass);\n const style = window.getComputedStyle(parametersContainer);\n document.body.appendChild(parametersContainer);\n const borderRadius = parseInt(style.getPropertyValue('--magritte-tooltip-border-radius'), 10);\n const arrowWidth = parseInt(style.getPropertyValue('--magritte-tooltip-arrow-width'), 10);\n if (Number.isInteger(borderRadius) && Number.isInteger(arrowWidth)) {\n const arrowGap = borderRadius + arrowWidth / 2;\n setArrowGuardDistance({\n left: {\n top: arrowGap,\n bottom: arrowGap,\n center: 0,\n },\n right: {\n top: arrowGap,\n bottom: arrowGap,\n center: 0,\n },\n top: {\n left: arrowGap,\n center: 0,\n right: arrowGap,\n },\n bottom: {\n left: arrowGap,\n center: 0,\n right: arrowGap,\n },\n });\n }\n const animationTimeout = parseInt(style.getPropertyValue('--animation-duration'), 10);\n if (Number.isInteger(animationTimeout)) {\n setAnimationTimeout(animationTimeout);\n }\n document.body.removeChild(parametersContainer);\n }, [hasButtons, isSmall]);\n\n if (isMobile) {\n return null;\n }\n\n return (\n <Layer layer=\"tooltip\">\n <DropBase\n {...props}\n placement={placementsList}\n visible={visible}\n activatorRef={activatorRef}\n arrowGuardDistance={arrowGuardDistance}\n closeByClickOutside={closeByClickOutside}\n onClose={onClose}\n autoFocusWhenOpened={ariaRole !== 'tooltip'}\n guardDistanceToActivator={guardDistanceToActivator}\n guardDistanceToViewport={0}\n allowShrinkHeightToFitIntoViewport={false}\n animationClassNames={CSS_CLASSES}\n animationTimeout={animationTimeout}\n ignoreIntersections={ignoreIntersections}\n role={ariaRole}\n aria-labelledby={title && role !== 'tooltip' ? ariaLabledBy : undefined}\n aria-describedby={role !== 'tooltip' ? ariaDescribedBy : undefined}\n ref={ref}\n lockPlacement={lockPlacement}\n >\n {() => (\n <div\n data-qa=\"tooltip\"\n ref={tooltipElementRef}\n className={classnames(styles.tooltip, {\n [styles.tooltipWithButtons]: !isSmall && !!buttons,\n [styles.tooltipWithClose]: !isSmall && showClose,\n [styles.tooltipSmall]: isSmall,\n })}\n style={{\n maxWidth: `${maxWidth}px`,\n }}\n >\n {title && !isSmall && (\n <div className={styles.tooltipTitle}>\n <BaseText\n id={ariaLabledBy}\n data-qa=\"tooltip-title\"\n Element=\"div\"\n style=\"primary\"\n typography=\"title-5-semibold\"\n >\n {title}\n </BaseText>\n </div>\n )}\n <Text\n typography={isSmall ? 'paragraph-3-regular' : 'paragraph-2-regular'}\n id={ariaDescribedBy}\n >\n {children}\n </Text>\n {buttons && !isSmall && (\n <div className={classnames(styles.tooltipButtons, STRETCHED_WRAPPER_CLASS)}>\n {typeof buttons === 'function' ? buttons(onClose) : buttons}\n </div>\n )}\n {showClose && !isSmall && (\n <div className={styles.tooltipClose}>\n <CrossOutlinedSize24\n padding={8}\n borderRadius=\"halfHeight\"\n data-qa=\"tooltip-close-action\"\n aria-label={ariaLabelClose}\n initialColor=\"constant-secondary\"\n onClick={() => onClose?.()}\n />\n </div>\n )}\n <TooltipArrow className={styles.tooltipArrow} size={size} />\n </div>\n )}\n </DropBase>\n </Layer>\n );\n }\n);\n\nTooltip.displayName = 'Tooltip';\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sources":["../src/Tooltip.tsx"],"sourcesContent":["import { type ReactElement, useLayoutEffect, useId, useState, useRef, forwardRef } from 'react';\nimport classnames from 'classnames';\n\nimport { DropBase, type Placement, usePlacement } from '@hh.ru/magritte-internal-drop-base';\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\nimport { STRETCHED_WRAPPER_CLASS } from '@hh.ru/magritte-ui-button';\nimport { CrossOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';\nimport { Layer } from '@hh.ru/magritte-ui-layer';\nimport { TooltipArrow } from '@hh.ru/magritte-ui-tooltip/TooltipArrow';\nimport { TooltipProps } from '@hh.ru/magritte-ui-tooltip/types';\nimport { Text } from '@hh.ru/magritte-ui-typography';\nimport { BaseText } from '@hh.ru/magritte-ui-typography/BaseText';\n\nimport styles from './tooltip.less';\n\nconst CSS_CLASSES = {\n enter: styles.tooltipEnter,\n enterActive: styles.tooltipEnterActive,\n exit: styles.tooltipExit,\n exitActive: styles.tooltipExitActive,\n};\n\nconst AVAILABLE_PLACEMENTS_LIST: Set<Placement> = new Set([\n 'left-center',\n 'top-center',\n 'right-center',\n 'bottom-center',\n 'left-top',\n 'left-bottom',\n 'top-left',\n 'top-right',\n 'right-bottom',\n 'right-top',\n 'bottom-left',\n 'bottom-right',\n]);\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = () => {};\n\nexport const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(\n (\n {\n visible,\n activatorRef,\n onClose = noop,\n maxWidth = 400,\n title,\n children,\n showClose,\n closeByClickOutside = true,\n placement,\n buttons,\n forcePlacement,\n 'aria-label-close': ariaLabelClose,\n role,\n size = 'medium',\n ignoreIntersections = true,\n lockPlacement = true,\n guardDistanceToActivator: _guardDistanceToActivator,\n ...props\n }: TooltipProps,\n ref\n ): ReactElement | null => {\n const { isMobile } = useBreakpoint();\n const id = useId();\n const ariaLabledBy = `tooltip-aria-label-${id}`;\n const ariaDescribedBy = `tooltip-aria-description-${id}`;\n const [animationTimeout, setAnimationTimeout] = useState(200);\n const [arrowGuardDistance, setArrowGuardDistance] = useState({\n left: { top: 0, bottom: 0, center: 0 },\n right: { top: 0, bottom: 0, center: 0 },\n top: { left: 0, center: 0, right: 0 },\n bottom: { left: 0, center: 0, right: 0 },\n });\n const placementsList = usePlacement(placement, AVAILABLE_PLACEMENTS_LIST, !!forcePlacement);\n const tooltipElementRef = useRef<HTMLDivElement>(null);\n\n const ariaRole = role || (buttons ? 'alertdialog' : 'tooltip');\n const isSmall = size === 'small';\n const hasButtons = !!buttons;\n const guardDistanceToActivator = _guardDistanceToActivator ?? (isSmall ? 11 : 20);\n\n useLayoutEffect(() => {\n const parametersContainer = document.createElement('div');\n parametersContainer.style.display = 'none';\n const cssClass = classnames({\n [styles.mediumTooltipWithButtonsParams]: !isSmall && hasButtons,\n [styles.mediumTooltipParams]: !isSmall && !hasButtons,\n [styles.smallTooltipParams]: isSmall,\n });\n parametersContainer.classList.add(cssClass);\n const style = window.getComputedStyle(parametersContainer);\n document.body.appendChild(parametersContainer);\n const borderRadius = parseInt(style.getPropertyValue('--magritte-tooltip-border-radius'), 10);\n const arrowWidth = parseInt(style.getPropertyValue('--magritte-tooltip-arrow-width'), 10);\n if (Number.isInteger(borderRadius) && Number.isInteger(arrowWidth)) {\n const arrowGap = borderRadius + arrowWidth / 2;\n setArrowGuardDistance({\n left: {\n top: arrowGap,\n bottom: arrowGap,\n center: 0,\n },\n right: {\n top: arrowGap,\n bottom: arrowGap,\n center: 0,\n },\n top: {\n left: arrowGap,\n center: 0,\n right: arrowGap,\n },\n bottom: {\n left: arrowGap,\n center: 0,\n right: arrowGap,\n },\n });\n }\n const animationTimeout = parseInt(style.getPropertyValue('--animation-duration'), 10);\n if (Number.isInteger(animationTimeout)) {\n setAnimationTimeout(animationTimeout);\n }\n document.body.removeChild(parametersContainer);\n }, [hasButtons, isSmall]);\n\n if (isMobile) {\n return null;\n }\n\n return (\n <Layer layer=\"tooltip\">\n <DropBase\n {...props}\n placement={placementsList}\n visible={visible}\n activatorRef={activatorRef}\n arrowGuardDistance={arrowGuardDistance}\n closeByClickOutside={closeByClickOutside}\n onClose={onClose}\n autoFocusWhenOpened={ariaRole !== 'tooltip'}\n guardDistanceToActivator={guardDistanceToActivator}\n guardDistanceToViewport={0}\n allowShrinkHeightToFitIntoViewport={false}\n animationClassNames={CSS_CLASSES}\n animationTimeout={animationTimeout}\n ignoreIntersections={ignoreIntersections}\n role={ariaRole}\n aria-labelledby={title && role !== 'tooltip' ? ariaLabledBy : undefined}\n aria-describedby={role !== 'tooltip' ? ariaDescribedBy : undefined}\n ref={ref}\n lockPlacement={lockPlacement}\n >\n {() => (\n <div\n data-qa=\"tooltip\"\n ref={tooltipElementRef}\n className={classnames(styles.tooltip, {\n [styles.tooltipWithButtons]: !isSmall && !!buttons,\n [styles.tooltipWithClose]: !isSmall && showClose,\n [styles.tooltipSmall]: isSmall,\n })}\n style={{\n maxWidth: `${maxWidth}px`,\n }}\n >\n {title && !isSmall && (\n <div className={styles.tooltipTitle}>\n <BaseText\n id={ariaLabledBy}\n data-qa=\"tooltip-title\"\n Element=\"div\"\n style=\"primary\"\n typography=\"title-5-semibold\"\n >\n {title}\n </BaseText>\n </div>\n )}\n <Text\n typography={isSmall ? 'paragraph-3-regular' : 'paragraph-2-regular'}\n id={ariaDescribedBy}\n >\n {children}\n </Text>\n {buttons && !isSmall && (\n <div className={classnames(styles.tooltipButtons, STRETCHED_WRAPPER_CLASS)}>\n {typeof buttons === 'function' ? buttons(onClose) : buttons}\n </div>\n )}\n {showClose && !isSmall && (\n <div className={styles.tooltipClose}>\n <CrossOutlinedSize24\n padding={8}\n borderRadius=\"halfHeight\"\n data-qa=\"tooltip-close-action\"\n aria-label={ariaLabelClose}\n initialColor=\"constant-secondary\"\n onClick={() => onClose?.()}\n />\n </div>\n )}\n <TooltipArrow className={styles.tooltipArrow} size={size} />\n </div>\n )}\n </DropBase>\n </Layer>\n );\n }\n);\n\nTooltip.displayName = 'Tooltip';\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;;;;AAeA,MAAM,WAAW,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC,YAAY;IAC1B,WAAW,EAAE,MAAM,CAAC,kBAAkB;IACtC,IAAI,EAAE,MAAM,CAAC,WAAW;IACxB,UAAU,EAAE,MAAM,CAAC,iBAAiB;CACvC,CAAC;AAEF,MAAM,yBAAyB,GAAmB,IAAI,GAAG,CAAC;IACtD,aAAa;IACb,YAAY;IACZ,cAAc;IACd,eAAe;IACf,UAAU;IACV,aAAa;IACb,UAAU;IACV,WAAW;IACX,cAAc;IACd,WAAW;IACX,aAAa;IACb,cAAc;AACjB,CAAA,CAAC,CAAC;AAEH;AACA,MAAM,IAAI,GAAG,MAAK,GAAG,CAAC;AAEf,MAAM,OAAO,GAAG,UAAU,CAC7B,CACI,EACI,OAAO,EACP,YAAY,EACZ,OAAO,GAAG,IAAI,EACd,QAAQ,GAAG,GAAG,EACd,KAAK,EACL,QAAQ,EACR,SAAS,EACT,mBAAmB,GAAG,IAAI,EAC1B,SAAS,EACT,OAAO,EACP,cAAc,EACd,kBAAkB,EAAE,cAAc,EAClC,IAAI,EACJ,IAAI,GAAG,QAAQ,EACf,mBAAmB,GAAG,IAAI,EAC1B,aAAa,GAAG,IAAI,EACpB,wBAAwB,EAAE,yBAAyB,EACnD,GAAG,KAAK,EACG,EACf,GAAG,KACkB;AACrB,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;AACrC,IAAA,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;AACnB,IAAA,MAAM,YAAY,GAAG,CAAsB,mBAAA,EAAA,EAAE,EAAE,CAAC;AAChD,IAAA,MAAM,eAAe,GAAG,CAA4B,yBAAA,EAAA,EAAE,EAAE,CAAC;IACzD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC;AACzD,QAAA,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;AACtC,QAAA,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;AACvC,QAAA,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;AACrC,QAAA,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;AAC3C,KAAA,CAAC,CAAC;AACH,IAAA,MAAM,cAAc,GAAG,YAAY,CAAC,SAAS,EAAE,yBAAyB,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;AAC5F,IAAA,MAAM,iBAAiB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;AAEvD,IAAA,MAAM,QAAQ,GAAG,IAAI,KAAK,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC,CAAC;AAC/D,IAAA,MAAM,OAAO,GAAG,IAAI,KAAK,OAAO,CAAC;AACjC,IAAA,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC;AAC7B,IAAA,MAAM,wBAAwB,GAAG,yBAAyB,KAAK,OAAO,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAElF,eAAe,CAAC,MAAK;QACjB,MAAM,mBAAmB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1D,QAAA,mBAAmB,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAC3C,MAAM,QAAQ,GAAG,UAAU,CAAC;YACxB,CAAC,MAAM,CAAC,8BAA8B,GAAG,CAAC,OAAO,IAAI,UAAU;YAC/D,CAAC,MAAM,CAAC,mBAAmB,GAAG,CAAC,OAAO,IAAI,CAAC,UAAU;AACrD,YAAA,CAAC,MAAM,CAAC,kBAAkB,GAAG,OAAO;AACvC,SAAA,CAAC,CAAC;AACH,QAAA,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;AAC3D,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;AAC/C,QAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9F,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,gCAAgC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC1F,QAAA,IAAI,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;AAChE,YAAA,MAAM,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,CAAC,CAAC;AAC/C,YAAA,qBAAqB,CAAC;AAClB,gBAAA,IAAI,EAAE;AACF,oBAAA,GAAG,EAAE,QAAQ;AACb,oBAAA,MAAM,EAAE,QAAQ;AAChB,oBAAA,MAAM,EAAE,CAAC;AACZ,iBAAA;AACD,gBAAA,KAAK,EAAE;AACH,oBAAA,GAAG,EAAE,QAAQ;AACb,oBAAA,MAAM,EAAE,QAAQ;AAChB,oBAAA,MAAM,EAAE,CAAC;AACZ,iBAAA;AACD,gBAAA,GAAG,EAAE;AACD,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,MAAM,EAAE,CAAC;AACT,oBAAA,KAAK,EAAE,QAAQ;AAClB,iBAAA;AACD,gBAAA,MAAM,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,MAAM,EAAE,CAAC;AACT,oBAAA,KAAK,EAAE,QAAQ;AAClB,iBAAA;AACJ,aAAA,CAAC,CAAC;SACN;AACD,QAAA,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,EAAE,EAAE,CAAC,CAAC;AACtF,QAAA,IAAI,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE;YACpC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;SACzC;AACD,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;AACnD,KAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1B,IAAI,QAAQ,EAAE;AACV,QAAA,OAAO,IAAI,CAAC;KACf;IAED,QACIA,GAAC,CAAA,KAAK,EAAC,EAAA,KAAK,EAAC,SAAS,EAClB,QAAA,EAAAA,GAAA,CAAC,QAAQ,EAAA,EAAA,GACD,KAAK,EACT,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,kBAAkB,EACtC,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,EAAE,OAAO,EAChB,mBAAmB,EAAE,QAAQ,KAAK,SAAS,EAC3C,wBAAwB,EAAE,wBAAwB,EAClD,uBAAuB,EAAE,CAAC,EAC1B,kCAAkC,EAAE,KAAK,EACzC,mBAAmB,EAAE,WAAW,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,IAAI,EAAE,QAAQ,EAAA,iBAAA,EACG,KAAK,IAAI,IAAI,KAAK,SAAS,GAAG,YAAY,GAAG,SAAS,EAAA,kBAAA,EACrD,IAAI,KAAK,SAAS,GAAG,eAAe,GAAG,SAAS,EAClE,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,aAAa,EAAA,QAAA,EAE3B,OACGC,IACY,CAAA,KAAA,EAAA,EAAA,SAAA,EAAA,SAAS,EACjB,GAAG,EAAE,iBAAiB,EACtB,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE;oBAClC,CAAC,MAAM,CAAC,kBAAkB,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO;oBAClD,CAAC,MAAM,CAAC,gBAAgB,GAAG,CAAC,OAAO,IAAI,SAAS;AAChD,oBAAA,CAAC,MAAM,CAAC,YAAY,GAAG,OAAO;iBACjC,CAAC,EACF,KAAK,EAAE;oBACH,QAAQ,EAAE,CAAG,EAAA,QAAQ,CAAI,EAAA,CAAA;AAC5B,iBAAA,EAAA,QAAA,EAAA,CAEA,KAAK,IAAI,CAAC,OAAO,KACdD,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,YAAY,EAAA,QAAA,EAC/BA,GAAC,CAAA,QAAQ,IACL,EAAE,EAAE,YAAY,EAAA,SAAA,EACR,eAAe,EACvB,OAAO,EAAC,KAAK,EACb,KAAK,EAAC,SAAS,EACf,UAAU,EAAC,kBAAkB,EAE5B,QAAA,EAAA,KAAK,GACC,EACT,CAAA,CACT,EACDA,GAAA,CAAC,IAAI,EACD,EAAA,UAAU,EAAE,OAAO,GAAG,qBAAqB,GAAG,qBAAqB,EACnE,EAAE,EAAE,eAAe,EAAA,QAAA,EAElB,QAAQ,EAAA,CACN,EACN,OAAO,IAAI,CAAC,OAAO,KAChBA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,uBAAuB,CAAC,EAAA,QAAA,EACrE,OAAO,OAAO,KAAK,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,EACzD,CAAA,CACT,EACA,SAAS,IAAI,CAAC,OAAO,KAClBA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,YAAY,EAC/B,QAAA,EAAAA,GAAA,CAAC,mBAAmB,EAChB,EAAA,OAAO,EAAE,CAAC,EACV,YAAY,EAAC,YAAY,EACjB,SAAA,EAAA,sBAAsB,gBAClB,cAAc,EAC1B,YAAY,EAAC,oBAAoB,EACjC,OAAO,EAAE,MAAM,OAAO,IAAI,GAC5B,EACA,CAAA,CACT,EACDA,GAAA,CAAC,YAAY,EAAC,EAAA,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAI,CAAA,CAAA,EAAA,CAC1D,CACT,EACM,CAAA,EAAA,CACP,EACV;AACN,CAAC,EACH;AAEF,OAAO,CAAC,WAAW,GAAG,SAAS;;;;"}
|
package/index.css
CHANGED
|
@@ -1,174 +1,179 @@
|
|
|
1
1
|
:root{
|
|
2
|
-
--magritte-color-component-tooltip-background-content-v21-5-
|
|
3
|
-
--magritte-color-component-tooltip-text-content-v21-5-
|
|
4
|
-
--magritte-color-component-tooltip-stroke-content-v21-5-
|
|
2
|
+
--magritte-color-component-tooltip-background-content-v21-5-1:#000000;
|
|
3
|
+
--magritte-color-component-tooltip-text-content-v21-5-1:#ffffff;
|
|
4
|
+
--magritte-color-component-tooltip-stroke-content-v21-5-1:#3B3B3B;
|
|
5
5
|
}
|
|
6
6
|
:root{
|
|
7
|
-
--magritte-semantic-animation-ease-in-out-200-timing-function-v21-5-
|
|
8
|
-
--magritte-semantic-animation-ease-in-out-200-duration-v21-5-
|
|
9
|
-
--magritte-static-border-radius-300-v21-5-
|
|
10
|
-
--magritte-static-border-radius-400-v21-5-
|
|
11
|
-
--magritte-static-border-radius-600-v21-5-
|
|
7
|
+
--magritte-semantic-animation-ease-in-out-200-timing-function-v21-5-1:cubic-bezier(0.25, 0.1, 0.25, 1);
|
|
8
|
+
--magritte-semantic-animation-ease-in-out-200-duration-v21-5-1:200ms;
|
|
9
|
+
--magritte-static-border-radius-300-v21-5-1:12px;
|
|
10
|
+
--magritte-static-border-radius-400-v21-5-1:16px;
|
|
11
|
+
--magritte-static-border-radius-600-v21-5-1:24px;
|
|
12
12
|
}
|
|
13
13
|
.magritte-night-theme{
|
|
14
|
-
--magritte-color-component-tooltip-background-content-v21-5-
|
|
15
|
-
--magritte-color-component-tooltip-text-content-v21-5-
|
|
16
|
-
--magritte-color-component-tooltip-stroke-content-v21-5-
|
|
17
|
-
}
|
|
18
|
-
.magritte-medium-tooltip-with-buttons-params___krjlq_9-3-
|
|
19
|
-
--animation-duration:var(--magritte-semantic-animation-ease-in-out-200-duration-v21-5-
|
|
20
|
-
--magritte-tooltip-arrow-vertical-gap:calc(var(--magritte-static-border-radius-600-v21-5-
|
|
21
|
-
--magritte-tooltip-border-radius:var(--magritte-static-border-radius-600-v21-5-
|
|
14
|
+
--magritte-color-component-tooltip-background-content-v21-5-1:#000000;
|
|
15
|
+
--magritte-color-component-tooltip-text-content-v21-5-1:#ffffff;
|
|
16
|
+
--magritte-color-component-tooltip-stroke-content-v21-5-1:#3B3B3B;
|
|
17
|
+
}
|
|
18
|
+
.magritte-medium-tooltip-with-buttons-params___krjlq_9-3-12{
|
|
19
|
+
--animation-duration:var(--magritte-semantic-animation-ease-in-out-200-duration-v21-5-1);
|
|
20
|
+
--magritte-tooltip-arrow-vertical-gap:calc(var(--magritte-static-border-radius-600-v21-5-1) + 28px / 2 - 12px / 2 - 1px);
|
|
21
|
+
--magritte-tooltip-border-radius:var(--magritte-static-border-radius-600-v21-5-1);
|
|
22
22
|
--magritte-tooltip-arrow-width:28px;
|
|
23
23
|
--magritte-tooltip-arrow-height:12px;
|
|
24
24
|
}
|
|
25
|
-
.magritte-medium-tooltip-params___2qZnY_9-3-
|
|
26
|
-
--animation-duration:var(--magritte-semantic-animation-ease-in-out-200-duration-v21-5-
|
|
27
|
-
--magritte-tooltip-arrow-vertical-gap:calc(var(--magritte-static-border-radius-400-v21-5-
|
|
28
|
-
--magritte-tooltip-border-radius:var(--magritte-static-border-radius-400-v21-5-
|
|
25
|
+
.magritte-medium-tooltip-params___2qZnY_9-3-12{
|
|
26
|
+
--animation-duration:var(--magritte-semantic-animation-ease-in-out-200-duration-v21-5-1);
|
|
27
|
+
--magritte-tooltip-arrow-vertical-gap:calc(var(--magritte-static-border-radius-400-v21-5-1) + 28px / 2 - 12px / 2 - 1px);
|
|
28
|
+
--magritte-tooltip-border-radius:var(--magritte-static-border-radius-400-v21-5-1);
|
|
29
29
|
--magritte-tooltip-arrow-width:28px;
|
|
30
30
|
--magritte-tooltip-arrow-height:12px;
|
|
31
31
|
}
|
|
32
|
-
.magritte-small-tooltip-params___N8y51_9-3-
|
|
33
|
-
--animation-duration:var(--magritte-semantic-animation-ease-in-out-200-duration-v21-5-
|
|
34
|
-
--magritte-tooltip-arrow-vertical-gap:calc(var(--magritte-static-border-radius-300-v21-5-
|
|
35
|
-
--magritte-tooltip-border-radius:var(--magritte-static-border-radius-300-v21-5-
|
|
32
|
+
.magritte-small-tooltip-params___N8y51_9-3-12{
|
|
33
|
+
--animation-duration:var(--magritte-semantic-animation-ease-in-out-200-duration-v21-5-1);
|
|
34
|
+
--magritte-tooltip-arrow-vertical-gap:calc(var(--magritte-static-border-radius-300-v21-5-1) + 18px / 2 - 12px / 2 - 1px);
|
|
35
|
+
--magritte-tooltip-border-radius:var(--magritte-static-border-radius-300-v21-5-1);
|
|
36
36
|
--magritte-tooltip-arrow-width:18px;
|
|
37
37
|
--magritte-tooltip-arrow-height:12px;
|
|
38
38
|
}
|
|
39
|
-
.magritte-tooltip___Hxyh2_9-3-
|
|
39
|
+
.magritte-tooltip___Hxyh2_9-3-12{
|
|
40
40
|
position:relative;
|
|
41
41
|
padding:16px;
|
|
42
|
-
background:var(--magritte-color-component-tooltip-background-content-v21-5-
|
|
42
|
+
background:var(--magritte-color-component-tooltip-background-content-v21-5-1);
|
|
43
43
|
border-radius:var(--magritte-tooltip-border-radius);
|
|
44
|
-
border:1px solid var(--magritte-color-component-tooltip-stroke-content-v21-5-
|
|
44
|
+
border:1px solid var(--magritte-color-component-tooltip-stroke-content-v21-5-1);
|
|
45
45
|
box-sizing:border-box;
|
|
46
46
|
word-wrap:break-word;
|
|
47
47
|
min-height:60px;
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
--magritte-
|
|
48
|
+
text-align:left;
|
|
49
|
+
white-space:normal;
|
|
50
|
+
word-spacing:normal;
|
|
51
|
+
direction:ltr;
|
|
52
|
+
text-decoration:none;
|
|
53
|
+
--magritte-ui-text-color-override:var(--magritte-color-component-tooltip-text-content-v21-5-1);
|
|
54
|
+
--magritte-ui-tooltip-arrow-fill:var(--magritte-color-component-tooltip-background-content-v21-5-1);
|
|
55
|
+
--magritte-ui-tooltip-arrow-stroke:var(--magritte-color-component-tooltip-stroke-content-v21-5-1);
|
|
56
|
+
--animation-duration:var(--magritte-semantic-animation-ease-in-out-200-duration-v21-5-1);
|
|
57
|
+
--magritte-tooltip-arrow-vertical-gap:calc(var(--magritte-static-border-radius-400-v21-5-1) + 28px / 2 - 12px / 2 - 1px);
|
|
58
|
+
--magritte-tooltip-border-radius:var(--magritte-static-border-radius-400-v21-5-1);
|
|
54
59
|
--magritte-tooltip-arrow-width:28px;
|
|
55
60
|
--magritte-tooltip-arrow-height:12px;
|
|
56
61
|
}
|
|
57
|
-
.magritte-tooltip-with-buttons___pQzdt_9-3-
|
|
62
|
+
.magritte-tooltip-with-buttons___pQzdt_9-3-12{
|
|
58
63
|
padding:24px 24px 12px;
|
|
59
|
-
--animation-duration:var(--magritte-semantic-animation-ease-in-out-200-duration-v21-5-
|
|
60
|
-
--magritte-tooltip-arrow-vertical-gap:calc(var(--magritte-static-border-radius-600-v21-5-
|
|
61
|
-
--magritte-tooltip-border-radius:var(--magritte-static-border-radius-600-v21-5-
|
|
64
|
+
--animation-duration:var(--magritte-semantic-animation-ease-in-out-200-duration-v21-5-1);
|
|
65
|
+
--magritte-tooltip-arrow-vertical-gap:calc(var(--magritte-static-border-radius-600-v21-5-1) + 28px / 2 - 12px / 2 - 1px);
|
|
66
|
+
--magritte-tooltip-border-radius:var(--magritte-static-border-radius-600-v21-5-1);
|
|
62
67
|
--magritte-tooltip-arrow-width:28px;
|
|
63
68
|
--magritte-tooltip-arrow-height:12px;
|
|
64
69
|
}
|
|
65
|
-
.magritte-tooltip-with-close___2iNPt_9-3-
|
|
70
|
+
.magritte-tooltip-with-close___2iNPt_9-3-12{
|
|
66
71
|
padding-right:56px;
|
|
67
72
|
}
|
|
68
|
-
.magritte-tooltip-small___W1eTg_9-3-
|
|
73
|
+
.magritte-tooltip-small___W1eTg_9-3-12{
|
|
69
74
|
padding:8px 12px;
|
|
70
75
|
min-height:0;
|
|
71
|
-
--animation-duration:var(--magritte-semantic-animation-ease-in-out-200-duration-v21-5-
|
|
72
|
-
--magritte-tooltip-arrow-vertical-gap:calc(var(--magritte-static-border-radius-300-v21-5-
|
|
73
|
-
--magritte-tooltip-border-radius:var(--magritte-static-border-radius-300-v21-5-
|
|
76
|
+
--animation-duration:var(--magritte-semantic-animation-ease-in-out-200-duration-v21-5-1);
|
|
77
|
+
--magritte-tooltip-arrow-vertical-gap:calc(var(--magritte-static-border-radius-300-v21-5-1) + 18px / 2 - 12px / 2 - 1px);
|
|
78
|
+
--magritte-tooltip-border-radius:var(--magritte-static-border-radius-300-v21-5-1);
|
|
74
79
|
--magritte-tooltip-arrow-width:18px;
|
|
75
80
|
--magritte-tooltip-arrow-height:12px;
|
|
76
81
|
}
|
|
77
|
-
.magritte-tooltip-title___s-ekd_9-3-
|
|
82
|
+
.magritte-tooltip-title___s-ekd_9-3-12{
|
|
78
83
|
margin-bottom:4px;
|
|
79
84
|
}
|
|
80
|
-
.magritte-tooltip-close___B1qWh_9-3-
|
|
85
|
+
.magritte-tooltip-close___B1qWh_9-3-12{
|
|
81
86
|
position:absolute;
|
|
82
87
|
right:9px;
|
|
83
88
|
top:9px;
|
|
84
89
|
}
|
|
85
|
-
.magritte-tooltip-with-buttons___pQzdt_9-3-
|
|
90
|
+
.magritte-tooltip-with-buttons___pQzdt_9-3-12 .magritte-tooltip-close___B1qWh_9-3-12{
|
|
86
91
|
right:15px;
|
|
87
92
|
top:15px;
|
|
88
93
|
}
|
|
89
94
|
@media (prefers-reduced-motion: no-preference){
|
|
90
|
-
.magritte-tooltip-enter___cnped_9-3-
|
|
95
|
+
.magritte-tooltip-enter___cnped_9-3-12 .magritte-tooltip___Hxyh2_9-3-12{
|
|
91
96
|
opacity:0;
|
|
92
97
|
}
|
|
93
|
-
.magritte-css-variables-element___yRnOI_9-3-
|
|
94
|
-
.magritte-tooltip-enter-active___M8qsm_9-3-
|
|
98
|
+
.magritte-css-variables-element___yRnOI_9-3-12,
|
|
99
|
+
.magritte-tooltip-enter-active___M8qsm_9-3-12 .magritte-tooltip___Hxyh2_9-3-12{
|
|
95
100
|
opacity:1;
|
|
96
101
|
transition-property:opacity, transform;
|
|
97
|
-
transition-duration:var(--magritte-semantic-animation-ease-in-out-200-duration-v21-5-
|
|
98
|
-
transition-timing-function:var(--magritte-semantic-animation-ease-in-out-200-timing-function-v21-5-
|
|
102
|
+
transition-duration:var(--magritte-semantic-animation-ease-in-out-200-duration-v21-5-1);
|
|
103
|
+
transition-timing-function:var(--magritte-semantic-animation-ease-in-out-200-timing-function-v21-5-1);
|
|
99
104
|
}
|
|
100
|
-
.magritte-tooltip-exit___IXkNp_9-3-
|
|
105
|
+
.magritte-tooltip-exit___IXkNp_9-3-12 .magritte-tooltip___Hxyh2_9-3-12{
|
|
101
106
|
opacity:1;
|
|
102
107
|
}
|
|
103
|
-
.magritte-tooltip-exit-active___QllYr_9-3-
|
|
108
|
+
.magritte-tooltip-exit-active___QllYr_9-3-12 .magritte-tooltip___Hxyh2_9-3-12{
|
|
104
109
|
opacity:0;
|
|
105
110
|
transition-property:opacity, transform;
|
|
106
|
-
transition-duration:var(--magritte-semantic-animation-ease-in-out-200-duration-v21-5-
|
|
107
|
-
transition-timing-function:var(--magritte-semantic-animation-ease-in-out-200-timing-function-v21-5-
|
|
111
|
+
transition-duration:var(--magritte-semantic-animation-ease-in-out-200-duration-v21-5-1);
|
|
112
|
+
transition-timing-function:var(--magritte-semantic-animation-ease-in-out-200-timing-function-v21-5-1);
|
|
108
113
|
}
|
|
109
|
-
.magritte-tooltip-exit-active___QllYr_9-3-
|
|
110
|
-
.magritte-tooltip-enter___cnped_9-3-
|
|
114
|
+
.magritte-tooltip-exit-active___QllYr_9-3-12[data-magritte-drop-base-direction='bottom'] .magritte-tooltip___Hxyh2_9-3-12,
|
|
115
|
+
.magritte-tooltip-enter___cnped_9-3-12[data-magritte-drop-base-direction='bottom'] .magritte-tooltip___Hxyh2_9-3-12{
|
|
111
116
|
transform:translateY(4px);
|
|
112
117
|
}
|
|
113
|
-
.magritte-tooltip-exit-active___QllYr_9-3-
|
|
114
|
-
.magritte-tooltip-enter___cnped_9-3-
|
|
118
|
+
.magritte-tooltip-exit-active___QllYr_9-3-12[data-magritte-drop-base-direction='top'] .magritte-tooltip___Hxyh2_9-3-12,
|
|
119
|
+
.magritte-tooltip-enter___cnped_9-3-12[data-magritte-drop-base-direction='top'] .magritte-tooltip___Hxyh2_9-3-12{
|
|
115
120
|
transform:translateY(-4px);
|
|
116
121
|
}
|
|
117
|
-
.magritte-tooltip-exit-active___QllYr_9-3-
|
|
118
|
-
.magritte-tooltip-enter___cnped_9-3-
|
|
122
|
+
.magritte-tooltip-exit-active___QllYr_9-3-12[data-magritte-drop-base-direction='left'] .magritte-tooltip___Hxyh2_9-3-12,
|
|
123
|
+
.magritte-tooltip-enter___cnped_9-3-12[data-magritte-drop-base-direction='left'] .magritte-tooltip___Hxyh2_9-3-12{
|
|
119
124
|
transform:translateX(-4px);
|
|
120
125
|
}
|
|
121
|
-
.magritte-tooltip-exit-active___QllYr_9-3-
|
|
122
|
-
.magritte-tooltip-enter___cnped_9-3-
|
|
126
|
+
.magritte-tooltip-exit-active___QllYr_9-3-12[data-magritte-drop-base-direction='right'] .magritte-tooltip___Hxyh2_9-3-12,
|
|
127
|
+
.magritte-tooltip-enter___cnped_9-3-12[data-magritte-drop-base-direction='right'] .magritte-tooltip___Hxyh2_9-3-12{
|
|
123
128
|
transform:translateX(4px);
|
|
124
129
|
}
|
|
125
|
-
.magritte-tooltip-enter-active___M8qsm_9-3-
|
|
130
|
+
.magritte-tooltip-enter-active___M8qsm_9-3-12[data-magritte-drop-base-direction] .magritte-tooltip___Hxyh2_9-3-12{
|
|
126
131
|
transform:translate(0, 0);
|
|
127
132
|
}
|
|
128
133
|
}
|
|
129
|
-
.magritte-tooltip-buttons___kNN5e_9-3-
|
|
134
|
+
.magritte-tooltip-buttons___kNN5e_9-3-12{
|
|
130
135
|
display:flex;
|
|
131
136
|
gap:12px;
|
|
132
137
|
margin:24px -12px 0;
|
|
133
138
|
}
|
|
134
|
-
.magritte-tooltip-with-close___2iNPt_9-3-
|
|
139
|
+
.magritte-tooltip-with-close___2iNPt_9-3-12 .magritte-tooltip-buttons___kNN5e_9-3-12{
|
|
135
140
|
margin-right:-44px;
|
|
136
141
|
}
|
|
137
|
-
.magritte-tooltip-arrow___7OOYT_9-3-
|
|
142
|
+
.magritte-tooltip-arrow___7OOYT_9-3-12{
|
|
138
143
|
position:absolute;
|
|
139
144
|
}
|
|
140
|
-
[data-magritte-drop-base-direction='bottom'] .magritte-tooltip-arrow___7OOYT_9-3-
|
|
145
|
+
[data-magritte-drop-base-direction='bottom'] .magritte-tooltip-arrow___7OOYT_9-3-12{
|
|
141
146
|
top:calc(var(--magritte-tooltip-arrow-height) * -1);
|
|
142
147
|
}
|
|
143
|
-
[data-magritte-drop-base-direction='top'] .magritte-tooltip-arrow___7OOYT_9-3-
|
|
148
|
+
[data-magritte-drop-base-direction='top'] .magritte-tooltip-arrow___7OOYT_9-3-12{
|
|
144
149
|
bottom:calc(var(--magritte-tooltip-arrow-height) * -1);
|
|
145
150
|
transform:rotate(180deg);
|
|
146
151
|
}
|
|
147
|
-
[data-magritte-drop-base-alignment='left'] .magritte-tooltip-arrow___7OOYT_9-3-
|
|
152
|
+
[data-magritte-drop-base-alignment='left'] .magritte-tooltip-arrow___7OOYT_9-3-12{
|
|
148
153
|
left:var(--magritte-tooltip-border-radius);
|
|
149
154
|
}
|
|
150
|
-
[data-magritte-drop-base-direction='top'][data-magritte-drop-base-alignment='center'] .magritte-tooltip-arrow___7OOYT_9-3-
|
|
151
|
-
[data-magritte-drop-base-direction='bottom'][data-magritte-drop-base-alignment='center'] .magritte-tooltip-arrow___7OOYT_9-3-
|
|
155
|
+
[data-magritte-drop-base-direction='top'][data-magritte-drop-base-alignment='center'] .magritte-tooltip-arrow___7OOYT_9-3-12,
|
|
156
|
+
[data-magritte-drop-base-direction='bottom'][data-magritte-drop-base-alignment='center'] .magritte-tooltip-arrow___7OOYT_9-3-12{
|
|
152
157
|
left:calc(50% - var(--magritte-tooltip-arrow-width) / 2);
|
|
153
158
|
}
|
|
154
|
-
[data-magritte-drop-base-alignment='right'] .magritte-tooltip-arrow___7OOYT_9-3-
|
|
159
|
+
[data-magritte-drop-base-alignment='right'] .magritte-tooltip-arrow___7OOYT_9-3-12{
|
|
155
160
|
right:var(--magritte-tooltip-border-radius);
|
|
156
161
|
}
|
|
157
|
-
[data-magritte-drop-base-direction='left'] .magritte-tooltip-arrow___7OOYT_9-3-
|
|
162
|
+
[data-magritte-drop-base-direction='left'] .magritte-tooltip-arrow___7OOYT_9-3-12{
|
|
158
163
|
right:calc(-1 * (var(--magritte-tooltip-arrow-width) / 2 + var(--magritte-tooltip-arrow-height) / 2));
|
|
159
164
|
transform:rotate(90deg);
|
|
160
165
|
}
|
|
161
|
-
[data-magritte-drop-base-direction='right'] .magritte-tooltip-arrow___7OOYT_9-3-
|
|
166
|
+
[data-magritte-drop-base-direction='right'] .magritte-tooltip-arrow___7OOYT_9-3-12{
|
|
162
167
|
left:calc(-1 * (var(--magritte-tooltip-arrow-width) / 2 + var(--magritte-tooltip-arrow-height) / 2));
|
|
163
168
|
transform:rotate(-90deg);
|
|
164
169
|
}
|
|
165
|
-
[data-magritte-drop-base-alignment='top'] .magritte-tooltip-arrow___7OOYT_9-3-
|
|
170
|
+
[data-magritte-drop-base-alignment='top'] .magritte-tooltip-arrow___7OOYT_9-3-12{
|
|
166
171
|
top:var(--magritte-tooltip-arrow-vertical-gap);
|
|
167
172
|
}
|
|
168
|
-
[data-magritte-drop-base-direction='left'][data-magritte-drop-base-alignment='center'] .magritte-tooltip-arrow___7OOYT_9-3-
|
|
169
|
-
[data-magritte-drop-base-direction='right'][data-magritte-drop-base-alignment='center'] .magritte-tooltip-arrow___7OOYT_9-3-
|
|
173
|
+
[data-magritte-drop-base-direction='left'][data-magritte-drop-base-alignment='center'] .magritte-tooltip-arrow___7OOYT_9-3-12,
|
|
174
|
+
[data-magritte-drop-base-direction='right'][data-magritte-drop-base-alignment='center'] .magritte-tooltip-arrow___7OOYT_9-3-12{
|
|
170
175
|
top:calc(50% - var(--magritte-tooltip-arrow-height) / 2);
|
|
171
176
|
}
|
|
172
|
-
[data-magritte-drop-base-alignment='bottom'] .magritte-tooltip-arrow___7OOYT_9-3-
|
|
177
|
+
[data-magritte-drop-base-alignment='bottom'] .magritte-tooltip-arrow___7OOYT_9-3-12{
|
|
173
178
|
bottom:var(--magritte-tooltip-arrow-vertical-gap);
|
|
174
179
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hh.ru/magritte-ui-tooltip",
|
|
3
|
-
"version": "9.3.
|
|
3
|
+
"version": "9.3.12",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"types": "index.d.ts",
|
|
6
6
|
"sideEffects": [
|
|
@@ -20,16 +20,16 @@
|
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@hh.ru/magritte-common-use-multiple-refs": "1.1.7",
|
|
23
|
-
"@hh.ru/magritte-design-tokens": "21.5.
|
|
24
|
-
"@hh.ru/magritte-internal-drop-base": "7.0.
|
|
23
|
+
"@hh.ru/magritte-design-tokens": "21.5.1",
|
|
24
|
+
"@hh.ru/magritte-internal-drop-base": "7.0.18",
|
|
25
25
|
"@hh.ru/magritte-internal-layer-name": "3.0.2",
|
|
26
26
|
"@hh.ru/magritte-ui-breakpoint": "5.0.3",
|
|
27
|
-
"@hh.ru/magritte-ui-button": "5.3.
|
|
28
|
-
"@hh.ru/magritte-ui-icon": "11.0.
|
|
27
|
+
"@hh.ru/magritte-ui-button": "5.3.14",
|
|
28
|
+
"@hh.ru/magritte-ui-icon": "11.0.11",
|
|
29
29
|
"@hh.ru/magritte-ui-layer": "3.0.2",
|
|
30
30
|
"@hh.ru/magritte-ui-mock-component": "1.1.4",
|
|
31
|
-
"@hh.ru/magritte-ui-theme-provider": "1.1.
|
|
32
|
-
"@hh.ru/magritte-ui-typography": "3.0.
|
|
31
|
+
"@hh.ru/magritte-ui-theme-provider": "1.1.50",
|
|
32
|
+
"@hh.ru/magritte-ui-typography": "3.0.46"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
35
|
"classnames": ">=2.3.2",
|
|
@@ -38,5 +38,5 @@
|
|
|
38
38
|
"publishConfig": {
|
|
39
39
|
"access": "public"
|
|
40
40
|
},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "4bb5448cb39f50a8b84cec5100fda12a9a45f6c1"
|
|
42
42
|
}
|