@elliemae/ds-tooltip 3.3.0 → 3.3.1-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/v3/DSTooltipV3.js +1 -1
- package/dist/cjs/v3/DSTooltipV3.js.map +2 -2
- package/dist/cjs/v3/constants.js.map +1 -1
- package/dist/cjs/v3/propTypes.js.map +2 -2
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/v1/DSTooltip.js +0 -1
- package/dist/esm/v1/DSTooltip.js.map +1 -1
- package/dist/esm/v1/TooltipType.js +0 -1
- package/dist/esm/v1/TooltipType.js.map +1 -1
- package/dist/esm/v2/DSTooltip.js +0 -1
- package/dist/esm/v2/DSTooltip.js.map +1 -1
- package/dist/esm/v2/DSTooltipArrow.js +0 -1
- package/dist/esm/v2/DSTooltipArrow.js.map +1 -1
- package/dist/esm/v2/TooltipType.js +0 -1
- package/dist/esm/v2/TooltipType.js.map +1 -1
- package/dist/esm/v2/index.d.js +0 -1
- package/dist/esm/v2/index.d.js.map +1 -1
- package/dist/esm/v2/propTypes.js +0 -1
- package/dist/esm/v2/propTypes.js.map +1 -1
- package/dist/esm/v2/styles.js +0 -1
- package/dist/esm/v2/styles.js.map +1 -1
- package/dist/esm/v2/utils/setMultipleRefs.js +0 -1
- package/dist/esm/v2/utils/setMultipleRefs.js.map +1 -1
- package/dist/esm/v2/utils/tooltipPositions.js +0 -1
- package/dist/esm/v2/utils/tooltipPositions.js.map +1 -1
- package/dist/esm/v3/DSTooltipV3.js +1 -2
- package/dist/esm/v3/DSTooltipV3.js.map +2 -2
- package/dist/esm/v3/TooltipV3DatatestId.js +0 -1
- package/dist/esm/v3/TooltipV3DatatestId.js.map +1 -1
- package/dist/esm/v3/constants.js +0 -1
- package/dist/esm/v3/constants.js.map +2 -2
- package/dist/esm/v3/defaultProps.js +0 -1
- package/dist/esm/v3/defaultProps.js.map +1 -1
- package/dist/esm/v3/index.js +0 -1
- package/dist/esm/v3/index.js.map +1 -1
- package/dist/esm/v3/propTypes.js +0 -1
- package/dist/esm/v3/propTypes.js.map +2 -2
- package/dist/esm/v3/styles.js +0 -1
- package/dist/esm/v3/styles.js.map +1 -1
- package/dist/esm/v3/utils.js +0 -1
- package/dist/esm/v3/utils.js.map +1 -1
- package/package.json +9 -9
|
@@ -42,7 +42,7 @@ const DSTooltipV3 = (props) => {
|
|
|
42
42
|
const [isFocused, setIsFocused] = (0, import_react.useState)(false);
|
|
43
43
|
const [isHover, setIsHover] = (0, import_react.useState)(false);
|
|
44
44
|
const [latestOpenInteraction, setLatestOpenInteraction] = (0, import_react.useState)("");
|
|
45
|
-
const [referenceElement, setReferenceElement] = (0, import_react.useState)();
|
|
45
|
+
const [referenceElement, setReferenceElement] = (0, import_react.useState)(null);
|
|
46
46
|
const [showPopover, setShowPopover] = (0, import_react.useState)(false);
|
|
47
47
|
const showTooltip = (0, import_react.useCallback)(() => {
|
|
48
48
|
setShowPopover(true);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/v3/DSTooltipV3.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable max-lines */\nimport React, { useState, useCallback, useContext } from 'react';\nimport { DSPopperJS } from '@elliemae/ds-popperjs';\nimport { useMemoMergePropsWithDefault, describe } from '@elliemae/ds-utilities';\nimport { ThemeContext } from '@elliemae/ds-system';\nimport { propTypes } from './propTypes';\nimport { TooltipV3DatatestId } from './TooltipV3DatatestId';\nimport { defaultProps } from './defaultProps';\nimport { StyledTooltipContainer, StyledTooltipText, StyledMouseOverDetectionBox, StyledTriggerWrapper } from './styles';\nimport { useGlobalKeyboardListener } from './utils';\nimport type { DSTooltipV3T } from './propTypes';\n\nconst DSTooltipV3: React.ComponentType<DSTooltipV3T.Props> = (props) => {\n const { text, children, onOpen, onClose, id, textAlign, wrapWords, ...extraPopperJsProps } =\n useMemoMergePropsWithDefault<DSTooltipV3T.InternalProps>(props, defaultProps);\n\n const theme = useContext(ThemeContext);\n\n const [isFocused, setIsFocused] = useState<boolean>(false);\n const [isHover, setIsHover] = useState<boolean>(false);\n const [latestOpenInteraction, setLatestOpenInteraction] = useState<string>('');\n const [referenceElement, setReferenceElement] = useState<HTMLSpanElement | null>();\n const [showPopover, setShowPopover] = useState<boolean>(false);\n\n const showTooltip = useCallback(() => {\n setShowPopover(true);\n onOpen();\n }, [onOpen]);\n\n const hideTooltip = useCallback(() => {\n setShowPopover(false);\n onClose();\n }, [onClose]);\n\n const onFocus = useCallback(() => {\n setIsFocused(true);\n if (!showPopover) {\n showTooltip();\n setLatestOpenInteraction('onFocus');\n }\n }, [showPopover, showTooltip]);\n\n const onBlur = useCallback(() => {\n setIsFocused(false);\n if (!isHover || latestOpenInteraction === 'onFocus') hideTooltip();\n }, [hideTooltip, isHover, latestOpenInteraction]);\n\n const onMouseEnter = useCallback(() => {\n setIsHover(true);\n if (!showPopover) {\n showTooltip();\n setLatestOpenInteraction('onMouseEnter');\n }\n }, [showPopover, showTooltip]);\n\n const onMouseLeave = useCallback(() => {\n setIsHover(false);\n if (!isFocused || latestOpenInteraction === 'onMouseEnter') hideTooltip();\n }, [hideTooltip, isFocused, latestOpenInteraction]);\n\n const handleEscKey = useCallback(\n ({ key }: { key: string }) => {\n if (key === 'Escape') hideTooltip();\n },\n [hideTooltip],\n );\n\n useGlobalKeyboardListener(handleEscKey);\n return (\n <StyledTriggerWrapper\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onPointerEnter={onMouseEnter}\n onPointerLeave={onMouseLeave}\n onFocus={onFocus}\n onBlur={onBlur}\n ref={setReferenceElement}\n data-testid={`${TooltipV3DatatestId.TRIGGER_WRAPPER}${id !== '' ? `_${id}` : ''}`}\n >\n <DSPopperJS\n referenceElement={referenceElement}\n showPopover={showPopover}\n zIndex={theme.zIndex.tooltip}\n {...extraPopperJsProps}\n >\n <div data-testid={`${TooltipV3DatatestId.TOOLTIP_TEXT_WRAPPER}${id !== '' ? `_${id}` : ''}`}>\n <StyledTooltipContainer>\n <StyledTooltipText textAlign={textAlign} wrapWords={wrapWords}>\n {text}\n </StyledTooltipText>\n <StyledMouseOverDetectionBox />\n </StyledTooltipContainer>\n </div>\n </DSPopperJS>\n\n {children}\n </StyledTriggerWrapper>\n );\n};\n\nDSTooltipV3.propTypes = propTypes;\nDSTooltipV3.displayName = 'DSTooltipV3';\nconst DSTooltipV3WithSchema = describe(DSTooltipV3);\nDSTooltipV3WithSchema.propTypes = propTypes;\n\nexport { DSTooltipV3, DSTooltipV3WithSchema };\n\nexport default DSTooltipV3;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAyD;AACzD,yBAA2B;AAC3B,0BAAuD;AACvD,uBAA6B;AAC7B,uBAA0B;AAC1B,iCAAoC;AACpC,0BAA6B;AAC7B,oBAA6G;AAC7G,mBAA0C;AAG1C,MAAM,cAAuD,CAAC,UAAU;AACtE,QAAM,EAAE,MAAM,UAAU,QAAQ,SAAS,IAAI,WAAW,cAAc,uBACpE,sDAAyD,OAAO,gCAAY;AAE9E,QAAM,QAAQ,6BAAW,6BAAY;AAErC,QAAM,CAAC,WAAW,gBAAgB,2BAAkB,KAAK;AACzD,QAAM,CAAC,SAAS,cAAc,2BAAkB,KAAK;AACrD,QAAM,CAAC,uBAAuB,4BAA4B,2BAAiB,EAAE;AAC7E,QAAM,CAAC,kBAAkB,uBAAuB,2BAAiC;
|
|
4
|
+
"sourcesContent": ["/* eslint-disable max-lines */\nimport React, { useState, useCallback, useContext } from 'react';\nimport { DSPopperJS } from '@elliemae/ds-popperjs';\nimport { useMemoMergePropsWithDefault, describe } from '@elliemae/ds-utilities';\nimport { ThemeContext } from '@elliemae/ds-system';\nimport { propTypes } from './propTypes';\nimport { TooltipV3DatatestId } from './TooltipV3DatatestId';\nimport { defaultProps } from './defaultProps';\nimport { StyledTooltipContainer, StyledTooltipText, StyledMouseOverDetectionBox, StyledTriggerWrapper } from './styles';\nimport { useGlobalKeyboardListener } from './utils';\nimport type { DSTooltipV3T } from './propTypes';\n\nconst DSTooltipV3: React.ComponentType<DSTooltipV3T.Props> = (props) => {\n const { text, children, onOpen, onClose, id, textAlign, wrapWords, ...extraPopperJsProps } =\n useMemoMergePropsWithDefault<DSTooltipV3T.InternalProps>(props, defaultProps);\n\n const theme = useContext(ThemeContext);\n\n const [isFocused, setIsFocused] = useState<boolean>(false);\n const [isHover, setIsHover] = useState<boolean>(false);\n const [latestOpenInteraction, setLatestOpenInteraction] = useState<string>('');\n const [referenceElement, setReferenceElement] = useState<HTMLSpanElement | null>(null);\n const [showPopover, setShowPopover] = useState<boolean>(false);\n\n const showTooltip = useCallback(() => {\n setShowPopover(true);\n onOpen();\n }, [onOpen]);\n\n const hideTooltip = useCallback(() => {\n setShowPopover(false);\n onClose();\n }, [onClose]);\n\n const onFocus = useCallback(() => {\n setIsFocused(true);\n if (!showPopover) {\n showTooltip();\n setLatestOpenInteraction('onFocus');\n }\n }, [showPopover, showTooltip]);\n\n const onBlur = useCallback(() => {\n setIsFocused(false);\n if (!isHover || latestOpenInteraction === 'onFocus') hideTooltip();\n }, [hideTooltip, isHover, latestOpenInteraction]);\n\n const onMouseEnter = useCallback(() => {\n setIsHover(true);\n if (!showPopover) {\n showTooltip();\n setLatestOpenInteraction('onMouseEnter');\n }\n }, [showPopover, showTooltip]);\n\n const onMouseLeave = useCallback(() => {\n setIsHover(false);\n if (!isFocused || latestOpenInteraction === 'onMouseEnter') hideTooltip();\n }, [hideTooltip, isFocused, latestOpenInteraction]);\n\n const handleEscKey = useCallback(\n ({ key }: { key: string }) => {\n if (key === 'Escape') hideTooltip();\n },\n [hideTooltip],\n );\n\n useGlobalKeyboardListener(handleEscKey);\n return (\n <StyledTriggerWrapper\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onPointerEnter={onMouseEnter}\n onPointerLeave={onMouseLeave}\n onFocus={onFocus}\n onBlur={onBlur}\n ref={setReferenceElement}\n data-testid={`${TooltipV3DatatestId.TRIGGER_WRAPPER}${id !== '' ? `_${id}` : ''}`}\n >\n <DSPopperJS\n referenceElement={referenceElement}\n showPopover={showPopover}\n zIndex={theme.zIndex.tooltip}\n {...extraPopperJsProps}\n >\n <div data-testid={`${TooltipV3DatatestId.TOOLTIP_TEXT_WRAPPER}${id !== '' ? `_${id}` : ''}`}>\n <StyledTooltipContainer>\n <StyledTooltipText textAlign={textAlign} wrapWords={wrapWords}>\n {text}\n </StyledTooltipText>\n <StyledMouseOverDetectionBox />\n </StyledTooltipContainer>\n </div>\n </DSPopperJS>\n\n {children}\n </StyledTriggerWrapper>\n );\n};\n\nDSTooltipV3.propTypes = propTypes;\nDSTooltipV3.displayName = 'DSTooltipV3';\nconst DSTooltipV3WithSchema = describe(DSTooltipV3);\nDSTooltipV3WithSchema.propTypes = propTypes;\n\nexport { DSTooltipV3, DSTooltipV3WithSchema };\n\nexport default DSTooltipV3;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAyD;AACzD,yBAA2B;AAC3B,0BAAuD;AACvD,uBAA6B;AAC7B,uBAA0B;AAC1B,iCAAoC;AACpC,0BAA6B;AAC7B,oBAA6G;AAC7G,mBAA0C;AAG1C,MAAM,cAAuD,CAAC,UAAU;AACtE,QAAM,EAAE,MAAM,UAAU,QAAQ,SAAS,IAAI,WAAW,cAAc,uBACpE,sDAAyD,OAAO,gCAAY;AAE9E,QAAM,QAAQ,6BAAW,6BAAY;AAErC,QAAM,CAAC,WAAW,gBAAgB,2BAAkB,KAAK;AACzD,QAAM,CAAC,SAAS,cAAc,2BAAkB,KAAK;AACrD,QAAM,CAAC,uBAAuB,4BAA4B,2BAAiB,EAAE;AAC7E,QAAM,CAAC,kBAAkB,uBAAuB,2BAAiC,IAAI;AACrF,QAAM,CAAC,aAAa,kBAAkB,2BAAkB,KAAK;AAE7D,QAAM,cAAc,8BAAY,MAAM;AACpC,mBAAe,IAAI;AACnB,WAAO;AAAA,EACT,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,cAAc,8BAAY,MAAM;AACpC,mBAAe,KAAK;AACpB,YAAQ;AAAA,EACV,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,UAAU,8BAAY,MAAM;AAChC,iBAAa,IAAI;AACjB,QAAI,CAAC,aAAa;AAChB,kBAAY;AACZ,+BAAyB,SAAS;AAAA,IACpC;AAAA,EACF,GAAG,CAAC,aAAa,WAAW,CAAC;AAE7B,QAAM,SAAS,8BAAY,MAAM;AAC/B,iBAAa,KAAK;AAClB,QAAI,CAAC,WAAW,0BAA0B;AAAW,kBAAY;AAAA,EACnE,GAAG,CAAC,aAAa,SAAS,qBAAqB,CAAC;AAEhD,QAAM,eAAe,8BAAY,MAAM;AACrC,eAAW,IAAI;AACf,QAAI,CAAC,aAAa;AAChB,kBAAY;AACZ,+BAAyB,cAAc;AAAA,IACzC;AAAA,EACF,GAAG,CAAC,aAAa,WAAW,CAAC;AAE7B,QAAM,eAAe,8BAAY,MAAM;AACrC,eAAW,KAAK;AAChB,QAAI,CAAC,aAAa,0BAA0B;AAAgB,kBAAY;AAAA,EAC1E,GAAG,CAAC,aAAa,WAAW,qBAAqB,CAAC;AAElD,QAAM,eAAe,8BACnB,CAAC,EAAE,UAA2B;AAC5B,QAAI,QAAQ;AAAU,kBAAY;AAAA,EACpC,GACA,CAAC,WAAW,CACd;AAEA,8CAA0B,YAAY;AACtC,SACE,mDAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL,eAAa,GAAG,+CAAoB,kBAAkB,OAAO,KAAK,IAAI,OAAO;AAAA,KAE7E,mDAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA,QAAQ,MAAM,OAAO;AAAA,IACpB,GAAG;AAAA,KAEJ,mDAAC;AAAA,IAAI,eAAa,GAAG,+CAAoB,uBAAuB,OAAO,KAAK,IAAI,OAAO;AAAA,KACrF,mDAAC,4CACC,mDAAC;AAAA,IAAkB;AAAA,IAAsB;AAAA,KACtC,IACH,GACA,mDAAC,+CAA4B,CAC/B,CACF,CACF,GAEC,QACH;AAEJ;AAEA,YAAY,YAAY;AACxB,YAAY,cAAc;AAC1B,MAAM,wBAAwB,kCAAS,WAAW;AAClD,sBAAsB,YAAY;AAIlC,IAAO,sBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/v3/constants.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["export const PLACEMENT = [\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n]
|
|
4
|
+
"sourcesContent": ["export const PLACEMENT = [\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n];\n\nexport const TEXT_ALIGNMENT = ['left', 'right', 'center', 'justify', 'initial', 'inherit'];\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAhB,MAAM,YAAY;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,MAAM,iBAAiB,CAAC,QAAQ,SAAS,UAAU,WAAW,WAAW,SAAS;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/v3/propTypes.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import { WeakValidationMap } from 'react';\nimport { PropTypes } from '@elliemae/ds-utilities';\nimport { PLACEMENT, TEXT_ALIGNMENT } from './constants';\n\nexport declare namespace DSTooltipV3T {\n export type Placement
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,
|
|
4
|
+
"sourcesContent": ["import { WeakValidationMap } from 'react';\nimport { GlobalAttributesT, PropTypes } from '@elliemae/ds-utilities';\nimport { PLACEMENT, TEXT_ALIGNMENT } from './constants';\n\nexport declare namespace DSTooltipV3T {\n export type Placement =\n | 'top-start'\n | 'top'\n | 'top-end'\n | 'right-start'\n | 'right'\n | 'right-end'\n | 'bottom-end'\n | 'bottom'\n | 'bottom-start'\n | 'left-end'\n | 'left'\n | 'left-start';\n export type TextAlignment = 'left' | 'right' | 'center' | 'justify' | 'initial' | 'inherit';\n\n export interface DefaultProps {\n onOpen: () => void;\n onClose: () => void;\n id: string;\n textAlign: TextAlignment;\n wrapWords: boolean;\n }\n\n export interface PropsOptional {\n zIndex?: number;\n withoutPortal?: boolean;\n withoutArrow?: boolean;\n withoutAnimation?: boolean;\n boundaryElement?: HTMLElement;\n animationDuraction?: number;\n portalDOMContainer?: HTMLElement;\n startPlacementPreference?: Placement;\n placementOrderPreference?: Placement[];\n customOffset?: [number, number];\n modifiers?: Record<string, unknown>[];\n }\n\n export interface PropsRequired {\n children: React.ReactNode;\n text: string;\n }\n\n export interface InternalProps extends DefaultProps, PropsRequired, PropsOptional {}\n\n interface IProps extends Partial<DefaultProps>, PropsRequired, PropsOptional {}\n\n export interface Props extends IProps, Omit<GlobalAttributesT<HTMLDivElement>, keyof IProps> {}\n}\n\nexport const propTypes = {\n text: PropTypes.string.description('Tooltip text to be displayed on hover/focus').isRequired,\n textAlign: PropTypes.oneOf(TEXT_ALIGNMENT as unknown as unknown[])\n .description('Tooltip text alignment')\n .defaultValue('left'),\n wrapWords: PropTypes.bool\n .description('Break words into a new line. Useful when words exceed tooltip max-lenght.')\n .defaultValue(false),\n children: PropTypes.node.description('Element to tie the tooltip to, must be a single node').isRequired,\n withoutPortal: PropTypes.bool\n .description('Whether or not the tooltip content should appear in a DOM portal or not')\n .defaultValue(true),\n withoutArrow: PropTypes.bool.description('Whether or not the tooltip should use the arrow').defaultValue(false),\n boundaryElement: PropTypes.element\n .description(\n 'Bounding element to calculate upon, defaults to \"clippingParents\",' +\n 'which are the scrolling containers that may cause element to be partially or fully cut off',\n )\n .defaultValue(undefined),\n withoutAnimation: PropTypes.bool\n .description('Whether or not the popper context menu should be animated')\n .defaultValue(false),\n animationDuration: PropTypes.number.description('Popper context menus Animation duration in ms').defaultValue(100),\n portalDOMContainer: PropTypes.element\n .description('When using portal, the container in which to append the DOM content, defaults to document body')\n .defaultValue(undefined),\n startPlacementPreference: PropTypes.oneOf(PLACEMENT)\n .description('start placement preferences, as per popperjs placement option')\n .defaultValue(\"'top'\"),\n placementOrderPreference: PropTypes.arrayOf(PropTypes.oneOf(PLACEMENT))\n .description('Array of placement preferences, as per popperjs \"flip\" placement option')\n .defaultValue(\"['top', 'bottom', 'left', 'right']\"),\n zIndex: PropTypes.number.description('popperjs content z-index').defaultValue(1),\n customOffset: PropTypes.arrayOf(PropTypes.number).description('placement offset array').defaultValue([0, 14]),\n modifiers: PropTypes.array\n .description('modifiers array for full-custom tooltip-js override, https://tooltip.js.org/docs/v2/modifiers/')\n .defaultValue(1),\n id: PropTypes.string.description('Optional id appended to data-testid').defaultValue(''),\n onOpen: PropTypes.func.description('Optional callback to be invoked when the tooltip opens').defaultValue('() => {}'),\n onClose: PropTypes.func\n .description('Optional callback to be invoked when the tooltip closes')\n .defaultValue('() => {}'),\n} as WeakValidationMap<unknown>;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,0BAA6C;AAC7C,uBAA0C;AAoDnC,MAAM,YAAY;AAAA,EACvB,MAAM,8BAAU,OAAO,YAAY,6CAA6C,EAAE;AAAA,EAClF,WAAW,8BAAU,MAAM,+BAAsC,EAC9D,YAAY,wBAAwB,EACpC,aAAa,MAAM;AAAA,EACtB,WAAW,8BAAU,KAClB,YAAY,2EAA2E,EACvF,aAAa,KAAK;AAAA,EACrB,UAAU,8BAAU,KAAK,YAAY,sDAAsD,EAAE;AAAA,EAC7F,eAAe,8BAAU,KACtB,YAAY,yEAAyE,EACrF,aAAa,IAAI;AAAA,EACpB,cAAc,8BAAU,KAAK,YAAY,iDAAiD,EAAE,aAAa,KAAK;AAAA,EAC9G,iBAAiB,8BAAU,QACxB,YACC,8JAEF,EACC,aAAa,MAAS;AAAA,EACzB,kBAAkB,8BAAU,KACzB,YAAY,2DAA2D,EACvE,aAAa,KAAK;AAAA,EACrB,mBAAmB,8BAAU,OAAO,YAAY,+CAA+C,EAAE,aAAa,GAAG;AAAA,EACjH,oBAAoB,8BAAU,QAC3B,YAAY,gGAAgG,EAC5G,aAAa,MAAS;AAAA,EACzB,0BAA0B,8BAAU,MAAM,0BAAS,EAChD,YAAY,+DAA+D,EAC3E,aAAa,OAAO;AAAA,EACvB,0BAA0B,8BAAU,QAAQ,8BAAU,MAAM,0BAAS,CAAC,EACnE,YAAY,yEAAyE,EACrF,aAAa,oCAAoC;AAAA,EACpD,QAAQ,8BAAU,OAAO,YAAY,0BAA0B,EAAE,aAAa,CAAC;AAAA,EAC/E,cAAc,8BAAU,QAAQ,8BAAU,MAAM,EAAE,YAAY,wBAAwB,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC;AAAA,EAC5G,WAAW,8BAAU,MAClB,YAAY,gGAAgG,EAC5G,aAAa,CAAC;AAAA,EACjB,IAAI,8BAAU,OAAO,YAAY,qCAAqC,EAAE,aAAa,EAAE;AAAA,EACvF,QAAQ,8BAAU,KAAK,YAAY,wDAAwD,EAAE,aAAa,UAAU;AAAA,EACpH,SAAS,8BAAU,KAChB,YAAY,yDAAyD,EACrE,aAAa,UAAU;AAC5B;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/index.js
CHANGED
package/dist/esm/index.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/index.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export * from './v1/DSTooltip';\nexport * from './v2/DSTooltip';\nexport { tooltipPositions } from './v2/utils/tooltipPositions';\nexport * from './v2/TooltipType';\nexport * from './v3';\nexport { default } from './v1/DSTooltip';\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/v1/DSTooltip.js
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/v1/DSTooltip.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React from 'react';\nimport { aggregatedClasses, convertPropToCssClassName } from '@elliemae/ds-classnames';\nimport { describe, PropTypes, getComponentFromProps } from '@elliemae/ds-utilities';\nimport { DEFAULT_DELAY_OPEN, DEFAULT_DELAY_CLOSE } from '@elliemae/ds-shared';\nimport { DSPopper, PopperPositions, PopperInteractions, interactions, positions } from '@elliemae/ds-popper';\nimport { TooltipType } from './TooltipType';\n\nconst blockName = 'tooltip';\n\nconst TooltipContainer = aggregatedClasses('div')(blockName, false, false, {\n propsToRemoveFromFinalElement: ['isHovered', 'isDragged'],\n});\nconst TooltipText = aggregatedClasses('span')(blockName, 'text', false, {\n propsToRemoveFromFinalElement: ['isHovered', 'isDragged'],\n});\n\nconst DSTooltip = ({\n containerProps = {},\n innerRef,\n placement = PopperPositions.TOP,\n title = '',\n delayClose = DEFAULT_DELAY_CLOSE,\n delayOpen = DEFAULT_DELAY_OPEN,\n interactionType = PopperInteractions.HOVER,\n triggerComponent = null,\n className = '',\n isOpen = undefined,\n onOpen = () => null,\n springAnimationComponent = undefined,\n tooltipType = TooltipType.TOOLTIP,\n showArrow = true,\n zIndex,\n ...otherTooltipProps\n}) => {\n const { cssClassName: tooltipBlockName } = convertPropToCssClassName(blockName);\n\n let Content = title;\n if (typeof title === 'string') {\n Content = <TooltipText>{title}</TooltipText>;\n }\n return (\n <DSPopper\n blockName={tooltipBlockName}\n contentComponent={\n <TooltipContainer\n {...containerProps}\n {...otherTooltipProps}\n className={`tooltip-container--${tooltipType} ${className}`}\n innerRef={innerRef}\n >\n {Content}\n </TooltipContainer>\n }\n delayClose={delayClose}\n delayOpen={delayOpen}\n interactionType={interactionType}\n isOpen={isOpen}\n onOpen={onOpen}\n placement={placement}\n showArrow={tooltipType === TooltipType.TOOLTIP ? showArrow : false}\n springAnimationComponent={springAnimationComponent}\n triggerComponent={getComponentFromProps(triggerComponent)}\n zIndex={zIndex}\n />\n );\n};\n\nconst tooltipProps = {\n containerProps: PropTypes.object.description('Set of Properties attached to the main container'),\n placement: PropTypes.oneOf(positions).description('Tooltip position').defaultValue(PopperPositions.TOP),\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).description('Tooltip content').isRequired,\n delayClose: PropTypes.string.description('Delay to close the tooltip').defaultValue(DEFAULT_DELAY_CLOSE),\n delayOpen: PropTypes.string.description('Delay to open the tooltip ').defaultValue(DEFAULT_DELAY_OPEN),\n interactionType: PropTypes.oneOf(interactions)\n .description('A type indicating how to open/close the tooltip')\n .defaultValue(PopperInteractions.HOVER),\n triggerComponent: PropTypes.element.description(\n `The component that will open/close the tooltip. \n Cannot be used with disabled elements. \n https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/disabled`,\n ).isRequired,\n isOpen: PropTypes.bool.description('Whether the tooltip is visible or not').defaultValue(undefined),\n onOpen: PropTypes.func.description('Handler when the tooltip opens'),\n springAnimationComponent: PropTypes.element.description('Spring animation component'),\n showArrow: PropTypes.bool.description('Whether to show an arrow or not').defaultValue(true),\n className: PropTypes.string.description('css class'),\n tooltipType: PropTypes.oneOf(['tooltip', 'toolbar']).description('Type of tooltip').defaultValue(TooltipType.TOOLTIP),\n zIndex: PropTypes.number.description('z-index value assigned to the tooltip').defaultValue(undefined),\n innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).description('Ref to the tooltip container element'),\n};\n\nDSTooltip.propTypes = tooltipProps;\nDSTooltip.displayName = 'DSTooltip';\nconst TooltipWithSchema = describe(DSTooltip);\nTooltipWithSchema.propTypes = tooltipProps;\n\nexport { DSTooltip, TooltipContainer, TooltipText, TooltipWithSchema };\nexport default DSTooltip;\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACCA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM,YAAY;AAElB,MAAM,mBAAmB,kBAAkB,KAAK,EAAE,WAAW,OAAO,OAAO;AAAA,EACzE,+BAA+B,CAAC,aAAa,WAAW;AAC1D,CAAC;AACD,MAAM,cAAc,kBAAkB,MAAM,EAAE,WAAW,QAAQ,OAAO;AAAA,EACtE,+BAA+B,CAAC,aAAa,WAAW;AAC1D,CAAC;AAED,MAAM,YAAY,CAAC;AAAA,EACjB,iBAAiB,CAAC;AAAA,EAClB;AAAA,EACA,YAAY,gBAAgB;AAAA,EAC5B,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,kBAAkB,mBAAmB;AAAA,EACrC,mBAAmB;AAAA,EACnB,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS,MAAM;AAAA,EACf,2BAA2B;AAAA,EAC3B,cAAc,YAAY;AAAA,EAC1B,YAAY;AAAA,EACZ;AAAA,KACG;AAAA,MACC;AACJ,QAAM,EAAE,cAAc,qBAAqB,0BAA0B,SAAS;AAE9E,MAAI,UAAU;AACd,MAAI,OAAO,UAAU,UAAU;AAC7B,cAAU,qCAAC,mBAAa,KAAM;AAAA,EAChC;AACA,SACE,qCAAC;AAAA,IACC,WAAW;AAAA,IACX,kBACE,qCAAC;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACJ,WAAW,sBAAsB,eAAe;AAAA,MAChD;AAAA,OAEC,OACH;AAAA,IAEF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,gBAAgB,YAAY,UAAU,YAAY;AAAA,IAC7D;AAAA,IACA,kBAAkB,sBAAsB,gBAAgB;AAAA,IACxD;AAAA,GACF;AAEJ;AAEA,MAAM,eAAe;AAAA,EACnB,gBAAgB,UAAU,OAAO,YAAY,kDAAkD;AAAA,EAC/F,WAAW,UAAU,MAAM,SAAS,EAAE,YAAY,kBAAkB,EAAE,aAAa,gBAAgB,GAAG;AAAA,EACtG,OAAO,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,OAAO,CAAC,EAAE,YAAY,iBAAiB,EAAE;AAAA,EACjG,YAAY,UAAU,OAAO,YAAY,4BAA4B,EAAE,aAAa,mBAAmB;AAAA,EACvG,WAAW,UAAU,OAAO,YAAY,4BAA4B,EAAE,aAAa,kBAAkB;AAAA,EACrG,iBAAiB,UAAU,MAAM,YAAY,EAC1C,YAAY,iDAAiD,EAC7D,aAAa,mBAAmB,KAAK;AAAA,EACxC,kBAAkB,UAAU,QAAQ,YAClC;AAAA;AAAA,0EAGF,EAAE;AAAA,EACF,QAAQ,UAAU,KAAK,YAAY,uCAAuC,EAAE,aAAa,MAAS;AAAA,EAClG,QAAQ,UAAU,KAAK,YAAY,gCAAgC;AAAA,EACnE,0BAA0B,UAAU,QAAQ,YAAY,4BAA4B;AAAA,EACpF,WAAW,UAAU,KAAK,YAAY,iCAAiC,EAAE,aAAa,IAAI;AAAA,EAC1F,WAAW,UAAU,OAAO,YAAY,WAAW;AAAA,EACnD,aAAa,UAAU,MAAM,CAAC,WAAW,SAAS,CAAC,EAAE,YAAY,iBAAiB,EAAE,aAAa,YAAY,OAAO;AAAA,EACpH,QAAQ,UAAU,OAAO,YAAY,uCAAuC,EAAE,aAAa,MAAS;AAAA,EACpG,UAAU,UAAU,UAAU,CAAC,UAAU,MAAM,UAAU,MAAM,CAAC,EAAE,YAAY,sCAAsC;AACtH;AAEA,UAAU,YAAY;AACtB,UAAU,cAAc;AACxB,MAAM,oBAAoB,SAAS,SAAS;AAC5C,kBAAkB,YAAY;AAG9B,IAAO,oBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/v1/TooltipType.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export const TooltipType = {\n TOOLTIP: 'tooltip',\n TOOLBAR: 'toolbar',\n};\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACAO,MAAM,cAAc;AAAA,EACzB,SAAS;AAAA,EACT,SAAS;AACX;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/v2/DSTooltip.js
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/v2/DSTooltip.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { useState, useCallback, useEffect, useRef, useContext } from 'react';\nimport { describe } from '@elliemae/ds-utilities';\nimport { DSPortal } from '@elliemae/ds-portal';\nimport { DEFAULT_DELAY_OPEN, DEFAULT_DELAY_CLOSE } from '@elliemae/ds-shared';\nimport { usePopper } from 'react-popper';\nimport { ThemeContext } from '@elliemae/ds-system';\nimport { tooltipPositions } from './utils/tooltipPositions';\nimport { TooltipType } from './TooltipType';\nimport {\n StyledTooltipContainer,\n StyledTriggerComponentContainer,\n StyledTooltipText,\n StyledAnimatedTooltip,\n} from './styles';\nimport { DSTooltipArrow } from './DSTooltipArrow';\nimport { DSTooltipT } from '.';\nimport { tooltipV2Props } from './propTypes';\nimport { setMultipleRefs } from './utils/setMultipleRefs';\n\nconst DSTooltipV2 = ({\n containerProps = {},\n innerRef,\n placement = tooltipPositions.BOTTOM,\n title = '',\n delayClose = DEFAULT_DELAY_CLOSE,\n delayOpen = DEFAULT_DELAY_OPEN,\n triggerComponent = null,\n className = '',\n getIsOpen = () => null,\n onOpen = () => null,\n tooltipType = TooltipType.TOOLTIP,\n showArrow = true,\n offset = [0, 14],\n zIndex,\n extraModifiers = {},\n}: DSTooltipT): React.ReactElement => {\n const [showTooltip, setShowTooltip] = useState<boolean>(false);\n const [isAnimating, setIsAnimating] = useState<boolean>(false);\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(triggerComponent);\n const [popperElement, setPopperElement] = useState<HTMLDivElement | null>(null);\n const [arrowElement, setArrowElement] = useState<HTMLDivElement | null>(null);\n const timerOpen = useRef(null);\n const timerClosed = useRef(null);\n\n const { styles, attributes } = usePopper(referenceElement, popperElement, {\n placement,\n modifiers: [\n { name: 'hide', enabled: true },\n {\n name: 'offset',\n enabled: true,\n options: {\n offset: tooltipType === TooltipType.TOOLBAR ? [0, 0] : offset,\n },\n },\n { name: 'arrow', options: { element: arrowElement } },\n { ...extraModifiers },\n ],\n });\n\n const handleShowTooltipOn = useCallback(() => {\n timerOpen.current = setTimeout(() => {\n setShowTooltip(true);\n setIsAnimating(true);\n getIsOpen(true);\n onOpen();\n }, delayOpen);\n }, [delayOpen, getIsOpen, onOpen]);\n\n const handleShowTooltipOff = useCallback(() => {\n timerClosed.current = setTimeout(() => {\n setShowTooltip(false);\n setIsAnimating(true);\n getIsOpen(false);\n }, delayClose);\n }, [delayClose, getIsOpen]);\n\n const handleKeyDown = useCallback((e) => {\n if (e.key === 'Escape') {\n e.target.blur();\n }\n }, []);\n\n const checkAnimationStatus = useCallback(() => {\n if (!showTooltip) {\n setIsAnimating(false);\n }\n }, [showTooltip]);\n\n useEffect(\n () => () => {\n clearTimeout(timerClosed.current);\n clearTimeout(timerOpen.current);\n },\n [],\n );\n\n const theme = useContext(ThemeContext);\n\n return (\n <>\n <StyledTriggerComponentContainer\n ref={setReferenceElement}\n onMouseEnter={handleShowTooltipOn}\n onMouseLeave={handleShowTooltipOff}\n onFocus={handleShowTooltipOn}\n onBlur={handleShowTooltipOff}\n onKeyDown={handleKeyDown}\n >\n {triggerComponent}\n </StyledTriggerComponentContainer>\n {isAnimating || showTooltip ? (\n <DSPortal>\n <StyledTooltipContainer\n className={className}\n showTooltip={showTooltip}\n tooltipType={tooltipType}\n data-testid=\"ds-tooltip-container\"\n ref={(ref) => setMultipleRefs(setPopperElement, innerRef)(ref)}\n style={{ ...styles.popper, zIndex: zIndex ?? theme.zIndex.tooltip }}\n {...containerProps}\n {...attributes.popper}\n >\n <StyledAnimatedTooltip\n showTooltip={showTooltip}\n data-testid=\"ds-tooltip\"\n onAnimationEnd={checkAnimationStatus}\n >\n <StyledTooltipText>{title}</StyledTooltipText>\n {tooltipType === TooltipType.TOOLTIP && showArrow ? (\n <DSTooltipArrow\n arrowElementRef={setArrowElement}\n style={styles.arrow}\n placement={attributes.popper ? attributes.popper['data-popper-placement'] : 'bottom'}\n />\n ) : null}\n </StyledAnimatedTooltip>\n </StyledTooltipContainer>\n </DSPortal>\n ) : null}\n </>\n );\n};\n\nDSTooltipV2.propTypes = tooltipV2Props;\nDSTooltipV2.displayName = 'DSTooltipV2';\nconst TooltipV2WithSchema = describe(DSTooltipV2);\nTooltipV2WithSchema.propTypes = tooltipV2Props;\n\nexport { DSTooltipV2, TooltipV2WithSchema };\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAEA;AACA;AAEA,MAAM,cAAc,CAAC;AAAA,EACnB,iBAAiB,CAAC;AAAA,EAClB;AAAA,EACA,YAAY,iBAAiB;AAAA,EAC7B,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,mBAAmB;AAAA,EACnB,YAAY;AAAA,EACZ,YAAY,MAAM;AAAA,EAClB,SAAS,MAAM;AAAA,EACf,cAAc,YAAY;AAAA,EAC1B,YAAY;AAAA,EACZ,SAAS,CAAC,GAAG,EAAE;AAAA,EACf;AAAA,EACA,iBAAiB,CAAC;AAAA,MACkB;AACpC,QAAM,CAAC,aAAa,kBAAkB,SAAkB,KAAK;AAC7D,QAAM,CAAC,aAAa,kBAAkB,SAAkB,KAAK;AAC7D,QAAM,CAAC,kBAAkB,uBAAuB,SAA6B,gBAAgB;AAC7F,QAAM,CAAC,eAAe,oBAAoB,SAAgC,IAAI;AAC9E,QAAM,CAAC,cAAc,mBAAmB,SAAgC,IAAI;AAC5E,QAAM,YAAY,OAAO,IAAI;AAC7B,QAAM,cAAc,OAAO,IAAI;AAE/B,QAAM,EAAE,QAAQ,eAAe,UAAU,kBAAkB,eAAe;AAAA,IACxE;AAAA,IACA,WAAW;AAAA,MACT,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,MAC9B;AAAA,QACE,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS;AAAA,UACP,QAAQ,gBAAgB,YAAY,UAAU,CAAC,GAAG,CAAC,IAAI;AAAA,QACzD;AAAA,MACF;AAAA,MACA,EAAE,MAAM,SAAS,SAAS,EAAE,SAAS,aAAa,EAAE;AAAA,MACpD,EAAE,GAAG,eAAe;AAAA,IACtB;AAAA,EACF,CAAC;AAED,QAAM,sBAAsB,YAAY,MAAM;AAC5C,cAAU,UAAU,WAAW,MAAM;AACnC,qBAAe,IAAI;AACnB,qBAAe,IAAI;AACnB,gBAAU,IAAI;AACd,aAAO;AAAA,IACT,GAAG,SAAS;AAAA,EACd,GAAG,CAAC,WAAW,WAAW,MAAM,CAAC;AAEjC,QAAM,uBAAuB,YAAY,MAAM;AAC7C,gBAAY,UAAU,WAAW,MAAM;AACrC,qBAAe,KAAK;AACpB,qBAAe,IAAI;AACnB,gBAAU,KAAK;AAAA,IACjB,GAAG,UAAU;AAAA,EACf,GAAG,CAAC,YAAY,SAAS,CAAC;AAE1B,QAAM,gBAAgB,YAAY,CAAC,MAAM;AACvC,QAAI,EAAE,QAAQ,UAAU;AACtB,QAAE,OAAO,KAAK;AAAA,IAChB;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,uBAAuB,YAAY,MAAM;AAC7C,QAAI,CAAC,aAAa;AAChB,qBAAe,KAAK;AAAA,IACtB;AAAA,EACF,GAAG,CAAC,WAAW,CAAC;AAEhB,YACE,MAAM,MAAM;AACV,iBAAa,YAAY,OAAO;AAChC,iBAAa,UAAU,OAAO;AAAA,EAChC,GACA,CAAC,CACH;AAEA,QAAM,QAAQ,WAAW,YAAY;AAErC,SACE,4DACE,qCAAC;AAAA,IACC,KAAK;AAAA,IACL,cAAc;AAAA,IACd,cAAc;AAAA,IACd,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,WAAW;AAAA,KAEV,gBACH,GACC,eAAe,cACd,qCAAC,gBACC,qCAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAY;AAAA,IACZ,KAAK,CAAC,QAAQ,gBAAgB,kBAAkB,QAAQ,EAAE,GAAG;AAAA,IAC7D,OAAO,EAAE,GAAG,OAAO,QAAQ,QAAQ,UAAU,MAAM,OAAO,QAAQ;AAAA,IACjE,GAAG;AAAA,IACH,GAAG,WAAW;AAAA,KAEf,qCAAC;AAAA,IACC;AAAA,IACA,eAAY;AAAA,IACZ,gBAAgB;AAAA,KAEhB,qCAAC,yBAAmB,KAAM,GACzB,gBAAgB,YAAY,WAAW,YACtC,qCAAC;AAAA,IACC,iBAAiB;AAAA,IACjB,OAAO,OAAO;AAAA,IACd,WAAW,WAAW,SAAS,WAAW,OAAO,2BAA2B;AAAA,GAC9E,IACE,IACN,CACF,CACF,IACE,IACN;AAEJ;AAEA,YAAY,YAAY;AACxB,YAAY,cAAc;AAC1B,MAAM,sBAAsB,SAAS,WAAW;AAChD,oBAAoB,YAAY;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/v2/DSTooltipArrow.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { DSTooltipArrowT } from './index.d';\nimport { StyledTooltipArrow } from './styles';\n\nconst DSTooltipArrow = ({ placement, style, arrowElementRef }: DSTooltipArrowT): React.ReactElement => (\n <StyledTooltipArrow\n key=\"popper-arrow\"\n data-placement={placement}\n style={style}\n ref={arrowElementRef}\n data-testid=\"ds-tooltip-arrow\"\n >\n <svg viewBox=\"0 0 30 30\">\n <path\n className=\"stroke\"\n d=\"M23.7,27.1L17,19.9C16.5,19.3,15.8,19,15,19s-1.6,0.3-2.1,0.9l-6.6,7.2C5.3,28.1,3.4,29,2,29h26\n C26.7,29,24.6,28.1,23.7,27.1z\"\n />\n <path\n className=\"fill\"\n d=\"M23,27.8c1.1,1.2,3.4,2.2,5,2.2h2H0h2c1.7,0,3.9-1,5-2.2l6.6-7.2c0.7-0.8,2-0.8,2.7,0L23,27.8L23,27.8z\"\n />\n </svg>\n </StyledTooltipArrow>\n);\n\nexport { DSTooltipArrow };\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACAA;AAEA;AAEA,MAAM,iBAAiB,CAAC,EAAE,WAAW,OAAO,sBAC1C,qCAAC;AAAA,EACC,KAAI;AAAA,EACJ,kBAAgB;AAAA,EAChB;AAAA,EACA,KAAK;AAAA,EACL,eAAY;AAAA,GAEZ,qCAAC;AAAA,EAAI,SAAQ;AAAA,GACX,qCAAC;AAAA,EACC,WAAU;AAAA,EACV,GAAE;AAAA,CAEJ,GACA,qCAAC;AAAA,EACC,WAAU;AAAA,EACV,GAAE;AAAA,CACJ,CACF,CACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/v2/TooltipType.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "const TooltipType = {\n TOOLTIP: 'tooltip' as const,\n TOOLBAR: 'toolbar' as const,\n};\n\nexport { TooltipType };\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACAA,MAAM,cAAc;AAAA,EAClB,SAAS;AAAA,EACT,SAAS;AACX;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/v2/index.d.js
CHANGED
package/dist/esm/v2/propTypes.js
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/v2/propTypes.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { PropTypes } from '@elliemae/ds-utilities';\nimport { DEFAULT_DELAY_OPEN, DEFAULT_DELAY_CLOSE } from '@elliemae/ds-shared';\nimport { TooltipType } from './TooltipType';\nimport { tooltipPositions } from './utils/tooltipPositions';\n\nconst tooltipV2Props = {\n containerProps: PropTypes.object.description('Set of Properties attached to the main container'),\n placement: PropTypes.oneOf(Object.values(tooltipPositions))\n .description('Tooltip position')\n .defaultValue(tooltipPositions.TOP),\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).description('Tooltip content').isRequired,\n delayClose: PropTypes.number.description('Delay to close the tooltip').defaultValue(DEFAULT_DELAY_CLOSE),\n delayOpen: PropTypes.number.description('Delay to open the tooltip ').defaultValue(DEFAULT_DELAY_OPEN),\n triggerComponent: PropTypes.element.description(\n `The component that will open/close the tooltip. \n Cannot be used with disabled elements. \n https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/disabled`,\n ).isRequired,\n getIsOpen: PropTypes.func.description('Whether the tooltip is visible or not'),\n onOpen: PropTypes.func.description('Callback when the tooltip opens'),\n showArrow: PropTypes.bool.description('Whether to show an arrow or not').defaultValue(true),\n className: PropTypes.string.description('css class'),\n tooltipType: PropTypes.oneOf(['tooltip', 'toolbar']).description('Type of tooltip').defaultValue(TooltipType.TOOLTIP),\n zIndex: PropTypes.number.description('z-index value assigned to the tooltip').defaultValue(undefined),\n innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).description('Ref to the tooltip container element'),\n offset: PropTypes.arrayOf(PropTypes.number).description('Custom Offset for the tooltip [x, y]'),\n};\n\nexport { tooltipV2Props };\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACAA;AACA;AACA;AACA;AAEA,MAAM,iBAAiB;AAAA,EACrB,gBAAgB,UAAU,OAAO,YAAY,kDAAkD;AAAA,EAC/F,WAAW,UAAU,MAAM,OAAO,OAAO,gBAAgB,CAAC,EACvD,YAAY,kBAAkB,EAC9B,aAAa,iBAAiB,GAAG;AAAA,EACpC,OAAO,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,OAAO,CAAC,EAAE,YAAY,iBAAiB,EAAE;AAAA,EACjG,YAAY,UAAU,OAAO,YAAY,4BAA4B,EAAE,aAAa,mBAAmB;AAAA,EACvG,WAAW,UAAU,OAAO,YAAY,4BAA4B,EAAE,aAAa,kBAAkB;AAAA,EACrG,kBAAkB,UAAU,QAAQ,YAClC;AAAA;AAAA,4EAGF,EAAE;AAAA,EACF,WAAW,UAAU,KAAK,YAAY,uCAAuC;AAAA,EAC7E,QAAQ,UAAU,KAAK,YAAY,iCAAiC;AAAA,EACpE,WAAW,UAAU,KAAK,YAAY,iCAAiC,EAAE,aAAa,IAAI;AAAA,EAC1F,WAAW,UAAU,OAAO,YAAY,WAAW;AAAA,EACnD,aAAa,UAAU,MAAM,CAAC,WAAW,SAAS,CAAC,EAAE,YAAY,iBAAiB,EAAE,aAAa,YAAY,OAAO;AAAA,EACpH,QAAQ,UAAU,OAAO,YAAY,uCAAuC,EAAE,aAAa,MAAS;AAAA,EACpG,UAAU,UAAU,UAAU,CAAC,UAAU,MAAM,UAAU,MAAM,CAAC,EAAE,YAAY,sCAAsC;AAAA,EACpH,QAAQ,UAAU,QAAQ,UAAU,MAAM,EAAE,YAAY,sCAAsC;AAChG;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/v2/styles.js
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/v2/styles.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { styled } from '@elliemae/ds-system';\nimport { kfrm, css } from '@elliemae/ds-system';\nimport { TooltipAnimationT, TooltipContainerT } from './index.d';\n\nconst showAnimation = kfrm`\n from {\n opacity: 0;\n transform: scale(0.8);\n }\n\n to {\n opacity: 1;\n transform: scale(1);\n visibility: visible;\n }\n`;\n\nconst hideAnimation = kfrm`\n 0% {\n opacity: 1;\n transform: scale(1);\n }\n\n 100% {\n opacity: 0;\n transform: scale(0.8);\n }\n`;\n\nconst StyledTooltipContainer = styled.div<TooltipContainerT>`\n &[data-popper-reference-hidden='true'] {\n display: none;\n pointer-events: none;\n }\n`;\n\nconst StyledAnimatedTooltip = styled.div<TooltipAnimationT>`\n text-align: center;\n min-width: ${({ theme }) => theme.space.l};\n max-width: 250px;\n min-height: 24px;\n padding: ${({ theme }) => `${theme.space.xxxs} ${theme.space.xs}`};\n position: relative;\n background-color: white;\n border-radius: 2px;\n font-size: 13px;\n color: ${({ theme }) => theme.colors.neutral[600]};\n box-shadow: 0 1px 5px 0 rgb(0 0 0 / 13%), 0 2px 4px 0 rgb(0 0 0 / 20%);\n filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2));\n visibility: ${({ showTooltip }) => (showTooltip ? 'visible' : 'hidden')};\n ${({ showTooltip }) =>\n css`\n animation: ${showTooltip ? showAnimation : hideAnimation} 0.1s ease-in;\n `}\n transition: visibility 0.1s ease-in;\n`;\n\nconst StyledTriggerComponentContainer = styled.div`\n display: inline-block;\n`;\n\nconst StyledTooltipText = styled.div`\n white-space: normal;\n word-wrap: break-word;\n display: inline-block;\n`;\n\nconst StyledTooltipArrow = styled.div`\n position: absolute;\n width: 18px;\n height: 18px;\n pointer-events: none;\n background-color: transparent;\n & .stroke {\n fill: white;\n }\n & .fill {\n fill: white;\n }\n\n &[data-placement^='top'] {\n svg {\n transform: rotateZ(180deg);\n }\n top: 98%;\n }\n &[data-placement^='right'] {\n svg {\n transform: rotateZ(-90deg);\n }\n right: 99.5%;\n }\n &[data-placement^='bottom'] {\n bottom: 97%;\n }\n &[data-placement^='left'] {\n svg {\n transform: rotateZ(90deg);\n }\n left: 99.5%;\n }\n`;\n\nexport {\n StyledTooltipContainer,\n StyledTriggerComponentContainer,\n StyledTooltipText,\n StyledTooltipArrow,\n StyledAnimatedTooltip,\n};\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACAA;AACA;AAGA,MAAM,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAatB,MAAM,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYtB,MAAM,yBAAyB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAOtC,MAAM,wBAAwB,OAAO;AAAA;AAAA,eAEtB,CAAC,EAAE,YAAY,MAAM,MAAM;AAAA;AAAA;AAAA,aAG7B,CAAC,EAAE,YAAY,GAAG,MAAM,MAAM,QAAQ,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,WAKpD,CAAC,EAAE,YAAY,MAAM,OAAO,QAAQ;AAAA;AAAA;AAAA,gBAG/B,CAAC,EAAE,kBAAmB,cAAc,YAAY;AAAA,IAC5D,CAAC,EAAE,kBACH;AAAA,mBACe,cAAc,gBAAgB;AAAA;AAAA;AAAA;AAKjD,MAAM,kCAAkC,OAAO;AAAA;AAAA;AAI/C,MAAM,oBAAoB,OAAO;AAAA;AAAA;AAAA;AAAA;AAMjC,MAAM,qBAAqB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/v2/utils/setMultipleRefs.ts"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export const setMultipleRefs = (...refs) => {\n const filteredRefs = refs.filter(Boolean);\n if (!filteredRefs.length) return null;\n if (filteredRefs.length === 0) return filteredRefs[0];\n return (newRef) => {\n filteredRefs.forEach((refToBeUpdated) => {\n if (typeof refToBeUpdated === 'function') {\n refToBeUpdated(newRef);\n } else if (refToBeUpdated) {\n refToBeUpdated.current = newRef;\n }\n });\n };\n};\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACAO,MAAM,kBAAkB,IAAI,SAAS;AAC1C,QAAM,eAAe,KAAK,OAAO,OAAO;AACxC,MAAI,CAAC,aAAa;AAAQ,WAAO;AACjC,MAAI,aAAa,WAAW;AAAG,WAAO,aAAa;AACnD,SAAO,CAAC,WAAW;AACjB,iBAAa,QAAQ,CAAC,mBAAmB;AACvC,UAAI,OAAO,mBAAmB,YAAY;AACxC,uBAAe,MAAM;AAAA,MACvB,WAAW,gBAAgB;AACzB,uBAAe,UAAU;AAAA,MAC3B;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/v2/utils/tooltipPositions.ts"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "const tooltipPositions = {\n TOP: 'top' as const,\n BOTTOM: 'bottom' as const,\n RIGHT: 'right' as const,\n LEFT: 'left' as const,\n TOP_START: 'top-start' as const,\n TOP_END: 'top-end' as const,\n BOTTOM_START: 'bottom-start' as const,\n BOTTOM_END: 'bottom-end' as const,\n RIGHT_START: 'right-start' as const,\n RIGHT_END: 'right-end' as const,\n LEFT_START: 'left-start' as const,\n LEFT_END: 'left-end' as const,\n};\n\nexport { tooltipPositions };\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACAA,MAAM,mBAAmB;AAAA,EACvB,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AAAA,EACT,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,UAAU;AACZ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
import * as React from "react";
|
|
3
2
|
import React2, { useState, useCallback, useContext } from "react";
|
|
4
3
|
import { DSPopperJS } from "@elliemae/ds-popperjs";
|
|
@@ -15,7 +14,7 @@ const DSTooltipV3 = (props) => {
|
|
|
15
14
|
const [isFocused, setIsFocused] = useState(false);
|
|
16
15
|
const [isHover, setIsHover] = useState(false);
|
|
17
16
|
const [latestOpenInteraction, setLatestOpenInteraction] = useState("");
|
|
18
|
-
const [referenceElement, setReferenceElement] = useState();
|
|
17
|
+
const [referenceElement, setReferenceElement] = useState(null);
|
|
19
18
|
const [showPopover, setShowPopover] = useState(false);
|
|
20
19
|
const showTooltip = useCallback(() => {
|
|
21
20
|
setShowPopover(true);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/v3/DSTooltipV3.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { useState, useCallback, useContext } from 'react';\nimport { DSPopperJS } from '@elliemae/ds-popperjs';\nimport { useMemoMergePropsWithDefault, describe } from '@elliemae/ds-utilities';\nimport { ThemeContext } from '@elliemae/ds-system';\nimport { propTypes } from './propTypes';\nimport { TooltipV3DatatestId } from './TooltipV3DatatestId';\nimport { defaultProps } from './defaultProps';\nimport { StyledTooltipContainer, StyledTooltipText, StyledMouseOverDetectionBox, StyledTriggerWrapper } from './styles';\nimport { useGlobalKeyboardListener } from './utils';\nimport type { DSTooltipV3T } from './propTypes';\n\nconst DSTooltipV3: React.ComponentType<DSTooltipV3T.Props> = (props) => {\n const { text, children, onOpen, onClose, id, textAlign, wrapWords, ...extraPopperJsProps } =\n useMemoMergePropsWithDefault<DSTooltipV3T.InternalProps>(props, defaultProps);\n\n const theme = useContext(ThemeContext);\n\n const [isFocused, setIsFocused] = useState<boolean>(false);\n const [isHover, setIsHover] = useState<boolean>(false);\n const [latestOpenInteraction, setLatestOpenInteraction] = useState<string>('');\n const [referenceElement, setReferenceElement] = useState<HTMLSpanElement | null>();\n const [showPopover, setShowPopover] = useState<boolean>(false);\n\n const showTooltip = useCallback(() => {\n setShowPopover(true);\n onOpen();\n }, [onOpen]);\n\n const hideTooltip = useCallback(() => {\n setShowPopover(false);\n onClose();\n }, [onClose]);\n\n const onFocus = useCallback(() => {\n setIsFocused(true);\n if (!showPopover) {\n showTooltip();\n setLatestOpenInteraction('onFocus');\n }\n }, [showPopover, showTooltip]);\n\n const onBlur = useCallback(() => {\n setIsFocused(false);\n if (!isHover || latestOpenInteraction === 'onFocus') hideTooltip();\n }, [hideTooltip, isHover, latestOpenInteraction]);\n\n const onMouseEnter = useCallback(() => {\n setIsHover(true);\n if (!showPopover) {\n showTooltip();\n setLatestOpenInteraction('onMouseEnter');\n }\n }, [showPopover, showTooltip]);\n\n const onMouseLeave = useCallback(() => {\n setIsHover(false);\n if (!isFocused || latestOpenInteraction === 'onMouseEnter') hideTooltip();\n }, [hideTooltip, isFocused, latestOpenInteraction]);\n\n const handleEscKey = useCallback(\n ({ key }: { key: string }) => {\n if (key === 'Escape') hideTooltip();\n },\n [hideTooltip],\n );\n\n useGlobalKeyboardListener(handleEscKey);\n return (\n <StyledTriggerWrapper\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onPointerEnter={onMouseEnter}\n onPointerLeave={onMouseLeave}\n onFocus={onFocus}\n onBlur={onBlur}\n ref={setReferenceElement}\n data-testid={`${TooltipV3DatatestId.TRIGGER_WRAPPER}${id !== '' ? `_${id}` : ''}`}\n >\n <DSPopperJS\n referenceElement={referenceElement}\n showPopover={showPopover}\n zIndex={theme.zIndex.tooltip}\n {...extraPopperJsProps}\n >\n <div data-testid={`${TooltipV3DatatestId.TOOLTIP_TEXT_WRAPPER}${id !== '' ? `_${id}` : ''}`}>\n <StyledTooltipContainer>\n <StyledTooltipText textAlign={textAlign} wrapWords={wrapWords}>\n {text}\n </StyledTooltipText>\n <StyledMouseOverDetectionBox />\n </StyledTooltipContainer>\n </div>\n </DSPopperJS>\n\n {children}\n </StyledTriggerWrapper>\n );\n};\n\nDSTooltipV3.propTypes = propTypes;\nDSTooltipV3.displayName = 'DSTooltipV3';\nconst DSTooltipV3WithSchema = describe(DSTooltipV3);\nDSTooltipV3WithSchema.propTypes = propTypes;\n\nexport { DSTooltipV3, DSTooltipV3WithSchema };\n\nexport default DSTooltipV3;\n"],
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { useState, useCallback, useContext } from 'react';\nimport { DSPopperJS } from '@elliemae/ds-popperjs';\nimport { useMemoMergePropsWithDefault, describe } from '@elliemae/ds-utilities';\nimport { ThemeContext } from '@elliemae/ds-system';\nimport { propTypes } from './propTypes';\nimport { TooltipV3DatatestId } from './TooltipV3DatatestId';\nimport { defaultProps } from './defaultProps';\nimport { StyledTooltipContainer, StyledTooltipText, StyledMouseOverDetectionBox, StyledTriggerWrapper } from './styles';\nimport { useGlobalKeyboardListener } from './utils';\nimport type { DSTooltipV3T } from './propTypes';\n\nconst DSTooltipV3: React.ComponentType<DSTooltipV3T.Props> = (props) => {\n const { text, children, onOpen, onClose, id, textAlign, wrapWords, ...extraPopperJsProps } =\n useMemoMergePropsWithDefault<DSTooltipV3T.InternalProps>(props, defaultProps);\n\n const theme = useContext(ThemeContext);\n\n const [isFocused, setIsFocused] = useState<boolean>(false);\n const [isHover, setIsHover] = useState<boolean>(false);\n const [latestOpenInteraction, setLatestOpenInteraction] = useState<string>('');\n const [referenceElement, setReferenceElement] = useState<HTMLSpanElement | null>(null);\n const [showPopover, setShowPopover] = useState<boolean>(false);\n\n const showTooltip = useCallback(() => {\n setShowPopover(true);\n onOpen();\n }, [onOpen]);\n\n const hideTooltip = useCallback(() => {\n setShowPopover(false);\n onClose();\n }, [onClose]);\n\n const onFocus = useCallback(() => {\n setIsFocused(true);\n if (!showPopover) {\n showTooltip();\n setLatestOpenInteraction('onFocus');\n }\n }, [showPopover, showTooltip]);\n\n const onBlur = useCallback(() => {\n setIsFocused(false);\n if (!isHover || latestOpenInteraction === 'onFocus') hideTooltip();\n }, [hideTooltip, isHover, latestOpenInteraction]);\n\n const onMouseEnter = useCallback(() => {\n setIsHover(true);\n if (!showPopover) {\n showTooltip();\n setLatestOpenInteraction('onMouseEnter');\n }\n }, [showPopover, showTooltip]);\n\n const onMouseLeave = useCallback(() => {\n setIsHover(false);\n if (!isFocused || latestOpenInteraction === 'onMouseEnter') hideTooltip();\n }, [hideTooltip, isFocused, latestOpenInteraction]);\n\n const handleEscKey = useCallback(\n ({ key }: { key: string }) => {\n if (key === 'Escape') hideTooltip();\n },\n [hideTooltip],\n );\n\n useGlobalKeyboardListener(handleEscKey);\n return (\n <StyledTriggerWrapper\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onPointerEnter={onMouseEnter}\n onPointerLeave={onMouseLeave}\n onFocus={onFocus}\n onBlur={onBlur}\n ref={setReferenceElement}\n data-testid={`${TooltipV3DatatestId.TRIGGER_WRAPPER}${id !== '' ? `_${id}` : ''}`}\n >\n <DSPopperJS\n referenceElement={referenceElement}\n showPopover={showPopover}\n zIndex={theme.zIndex.tooltip}\n {...extraPopperJsProps}\n >\n <div data-testid={`${TooltipV3DatatestId.TOOLTIP_TEXT_WRAPPER}${id !== '' ? `_${id}` : ''}`}>\n <StyledTooltipContainer>\n <StyledTooltipText textAlign={textAlign} wrapWords={wrapWords}>\n {text}\n </StyledTooltipText>\n <StyledMouseOverDetectionBox />\n </StyledTooltipContainer>\n </div>\n </DSPopperJS>\n\n {children}\n </StyledTriggerWrapper>\n );\n};\n\nDSTooltipV3.propTypes = propTypes;\nDSTooltipV3.displayName = 'DSTooltipV3';\nconst DSTooltipV3WithSchema = describe(DSTooltipV3);\nDSTooltipV3WithSchema.propTypes = propTypes;\n\nexport { DSTooltipV3, DSTooltipV3WithSchema };\n\nexport default DSTooltipV3;\n"],
|
|
5
|
+
"mappings": "AAAA;ACCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA,MAAM,cAAuD,CAAC,UAAU;AACtE,QAAM,EAAE,MAAM,UAAU,QAAQ,SAAS,IAAI,WAAW,cAAc,uBACpE,6BAAyD,OAAO,YAAY;AAE9E,QAAM,QAAQ,WAAW,YAAY;AAErC,QAAM,CAAC,WAAW,gBAAgB,SAAkB,KAAK;AACzD,QAAM,CAAC,SAAS,cAAc,SAAkB,KAAK;AACrD,QAAM,CAAC,uBAAuB,4BAA4B,SAAiB,EAAE;AAC7E,QAAM,CAAC,kBAAkB,uBAAuB,SAAiC,IAAI;AACrF,QAAM,CAAC,aAAa,kBAAkB,SAAkB,KAAK;AAE7D,QAAM,cAAc,YAAY,MAAM;AACpC,mBAAe,IAAI;AACnB,WAAO;AAAA,EACT,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,cAAc,YAAY,MAAM;AACpC,mBAAe,KAAK;AACpB,YAAQ;AAAA,EACV,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,UAAU,YAAY,MAAM;AAChC,iBAAa,IAAI;AACjB,QAAI,CAAC,aAAa;AAChB,kBAAY;AACZ,+BAAyB,SAAS;AAAA,IACpC;AAAA,EACF,GAAG,CAAC,aAAa,WAAW,CAAC;AAE7B,QAAM,SAAS,YAAY,MAAM;AAC/B,iBAAa,KAAK;AAClB,QAAI,CAAC,WAAW,0BAA0B;AAAW,kBAAY;AAAA,EACnE,GAAG,CAAC,aAAa,SAAS,qBAAqB,CAAC;AAEhD,QAAM,eAAe,YAAY,MAAM;AACrC,eAAW,IAAI;AACf,QAAI,CAAC,aAAa;AAChB,kBAAY;AACZ,+BAAyB,cAAc;AAAA,IACzC;AAAA,EACF,GAAG,CAAC,aAAa,WAAW,CAAC;AAE7B,QAAM,eAAe,YAAY,MAAM;AACrC,eAAW,KAAK;AAChB,QAAI,CAAC,aAAa,0BAA0B;AAAgB,kBAAY;AAAA,EAC1E,GAAG,CAAC,aAAa,WAAW,qBAAqB,CAAC;AAElD,QAAM,eAAe,YACnB,CAAC,EAAE,UAA2B;AAC5B,QAAI,QAAQ;AAAU,kBAAY;AAAA,EACpC,GACA,CAAC,WAAW,CACd;AAEA,4BAA0B,YAAY;AACtC,SACE,qCAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL,eAAa,GAAG,oBAAoB,kBAAkB,OAAO,KAAK,IAAI,OAAO;AAAA,KAE7E,qCAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA,QAAQ,MAAM,OAAO;AAAA,IACpB,GAAG;AAAA,KAEJ,qCAAC;AAAA,IAAI,eAAa,GAAG,oBAAoB,uBAAuB,OAAO,KAAK,IAAI,OAAO;AAAA,KACrF,qCAAC,8BACC,qCAAC;AAAA,IAAkB;AAAA,IAAsB;AAAA,KACtC,IACH,GACA,qCAAC,iCAA4B,CAC/B,CACF,CACF,GAEC,QACH;AAEJ;AAEA,YAAY,YAAY;AACxB,YAAY,cAAc;AAC1B,MAAM,wBAAwB,SAAS,WAAW;AAClD,sBAAsB,YAAY;AAIlC,IAAO,sBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/v3/TooltipV3DatatestId.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export const TooltipV3DatatestId = {\n TRIGGER_WRAPPER: 'ds-tooltip-v3-trigger-wrapper',\n TOOLTIP_TEXT_WRAPPER: 'ds-tooltip-v3-tooltip-text-wrapper',\n};\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACAO,MAAM,sBAAsB;AAAA,EACjC,iBAAiB;AAAA,EACjB,sBAAsB;AACxB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/v3/constants.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/v3/constants.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export const PLACEMENT = [\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n]
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export const PLACEMENT = [\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n];\n\nexport const TEXT_ALIGNMENT = ['left', 'right', 'center', 'justify', 'initial', 'inherit'];\n"],
|
|
5
|
+
"mappings": "AAAA;ACAO,MAAM,YAAY;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,MAAM,iBAAiB,CAAC,QAAQ,SAAS,UAAU,WAAW,WAAW,SAAS;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/v3/defaultProps.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import type { DSTooltipV3T } from './propTypes';\n\nconst noop = () => {};\n\nexport const defaultProps: DSTooltipV3T.DefaultProps = {\n onOpen: noop,\n onClose: noop,\n id: '',\n textAlign: 'left',\n wrapWords: false,\n};\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACEA,MAAM,OAAO,MAAM;AAAC;AAEb,MAAM,eAA0C;AAAA,EACrD,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,WAAW;AAAA,EACX,WAAW;AACb;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/v3/index.js
CHANGED
package/dist/esm/v3/index.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/v3/index.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export * from './DSTooltipV3';\nexport * from './TooltipV3DatatestId';\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACAA;AACA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/v3/propTypes.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/v3/propTypes.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { WeakValidationMap } from 'react';\nimport { PropTypes } from '@elliemae/ds-utilities';\nimport { PLACEMENT, TEXT_ALIGNMENT } from './constants';\n\nexport declare namespace DSTooltipV3T {\n export type Placement
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { WeakValidationMap } from 'react';\nimport { GlobalAttributesT, PropTypes } from '@elliemae/ds-utilities';\nimport { PLACEMENT, TEXT_ALIGNMENT } from './constants';\n\nexport declare namespace DSTooltipV3T {\n export type Placement =\n | 'top-start'\n | 'top'\n | 'top-end'\n | 'right-start'\n | 'right'\n | 'right-end'\n | 'bottom-end'\n | 'bottom'\n | 'bottom-start'\n | 'left-end'\n | 'left'\n | 'left-start';\n export type TextAlignment = 'left' | 'right' | 'center' | 'justify' | 'initial' | 'inherit';\n\n export interface DefaultProps {\n onOpen: () => void;\n onClose: () => void;\n id: string;\n textAlign: TextAlignment;\n wrapWords: boolean;\n }\n\n export interface PropsOptional {\n zIndex?: number;\n withoutPortal?: boolean;\n withoutArrow?: boolean;\n withoutAnimation?: boolean;\n boundaryElement?: HTMLElement;\n animationDuraction?: number;\n portalDOMContainer?: HTMLElement;\n startPlacementPreference?: Placement;\n placementOrderPreference?: Placement[];\n customOffset?: [number, number];\n modifiers?: Record<string, unknown>[];\n }\n\n export interface PropsRequired {\n children: React.ReactNode;\n text: string;\n }\n\n export interface InternalProps extends DefaultProps, PropsRequired, PropsOptional {}\n\n interface IProps extends Partial<DefaultProps>, PropsRequired, PropsOptional {}\n\n export interface Props extends IProps, Omit<GlobalAttributesT<HTMLDivElement>, keyof IProps> {}\n}\n\nexport const propTypes = {\n text: PropTypes.string.description('Tooltip text to be displayed on hover/focus').isRequired,\n textAlign: PropTypes.oneOf(TEXT_ALIGNMENT as unknown as unknown[])\n .description('Tooltip text alignment')\n .defaultValue('left'),\n wrapWords: PropTypes.bool\n .description('Break words into a new line. Useful when words exceed tooltip max-lenght.')\n .defaultValue(false),\n children: PropTypes.node.description('Element to tie the tooltip to, must be a single node').isRequired,\n withoutPortal: PropTypes.bool\n .description('Whether or not the tooltip content should appear in a DOM portal or not')\n .defaultValue(true),\n withoutArrow: PropTypes.bool.description('Whether or not the tooltip should use the arrow').defaultValue(false),\n boundaryElement: PropTypes.element\n .description(\n 'Bounding element to calculate upon, defaults to \"clippingParents\",' +\n 'which are the scrolling containers that may cause element to be partially or fully cut off',\n )\n .defaultValue(undefined),\n withoutAnimation: PropTypes.bool\n .description('Whether or not the popper context menu should be animated')\n .defaultValue(false),\n animationDuration: PropTypes.number.description('Popper context menus Animation duration in ms').defaultValue(100),\n portalDOMContainer: PropTypes.element\n .description('When using portal, the container in which to append the DOM content, defaults to document body')\n .defaultValue(undefined),\n startPlacementPreference: PropTypes.oneOf(PLACEMENT)\n .description('start placement preferences, as per popperjs placement option')\n .defaultValue(\"'top'\"),\n placementOrderPreference: PropTypes.arrayOf(PropTypes.oneOf(PLACEMENT))\n .description('Array of placement preferences, as per popperjs \"flip\" placement option')\n .defaultValue(\"['top', 'bottom', 'left', 'right']\"),\n zIndex: PropTypes.number.description('popperjs content z-index').defaultValue(1),\n customOffset: PropTypes.arrayOf(PropTypes.number).description('placement offset array').defaultValue([0, 14]),\n modifiers: PropTypes.array\n .description('modifiers array for full-custom tooltip-js override, https://tooltip.js.org/docs/v2/modifiers/')\n .defaultValue(1),\n id: PropTypes.string.description('Optional id appended to data-testid').defaultValue(''),\n onOpen: PropTypes.func.description('Optional callback to be invoked when the tooltip opens').defaultValue('() => {}'),\n onClose: PropTypes.func\n .description('Optional callback to be invoked when the tooltip closes')\n .defaultValue('() => {}'),\n} as WeakValidationMap<unknown>;\n"],
|
|
5
|
+
"mappings": "AAAA;ACCA;AACA;AAoDO,MAAM,YAAY;AAAA,EACvB,MAAM,UAAU,OAAO,YAAY,6CAA6C,EAAE;AAAA,EAClF,WAAW,UAAU,MAAM,cAAsC,EAC9D,YAAY,wBAAwB,EACpC,aAAa,MAAM;AAAA,EACtB,WAAW,UAAU,KAClB,YAAY,2EAA2E,EACvF,aAAa,KAAK;AAAA,EACrB,UAAU,UAAU,KAAK,YAAY,sDAAsD,EAAE;AAAA,EAC7F,eAAe,UAAU,KACtB,YAAY,yEAAyE,EACrF,aAAa,IAAI;AAAA,EACpB,cAAc,UAAU,KAAK,YAAY,iDAAiD,EAAE,aAAa,KAAK;AAAA,EAC9G,iBAAiB,UAAU,QACxB,YACC,8JAEF,EACC,aAAa,MAAS;AAAA,EACzB,kBAAkB,UAAU,KACzB,YAAY,2DAA2D,EACvE,aAAa,KAAK;AAAA,EACrB,mBAAmB,UAAU,OAAO,YAAY,+CAA+C,EAAE,aAAa,GAAG;AAAA,EACjH,oBAAoB,UAAU,QAC3B,YAAY,gGAAgG,EAC5G,aAAa,MAAS;AAAA,EACzB,0BAA0B,UAAU,MAAM,SAAS,EAChD,YAAY,+DAA+D,EAC3E,aAAa,OAAO;AAAA,EACvB,0BAA0B,UAAU,QAAQ,UAAU,MAAM,SAAS,CAAC,EACnE,YAAY,yEAAyE,EACrF,aAAa,oCAAoC;AAAA,EACpD,QAAQ,UAAU,OAAO,YAAY,0BAA0B,EAAE,aAAa,CAAC;AAAA,EAC/E,cAAc,UAAU,QAAQ,UAAU,MAAM,EAAE,YAAY,wBAAwB,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC;AAAA,EAC5G,WAAW,UAAU,MAClB,YAAY,gGAAgG,EAC5G,aAAa,CAAC;AAAA,EACjB,IAAI,UAAU,OAAO,YAAY,qCAAqC,EAAE,aAAa,EAAE;AAAA,EACvF,QAAQ,UAAU,KAAK,YAAY,wDAAwD,EAAE,aAAa,UAAU;AAAA,EACpH,SAAS,UAAU,KAChB,YAAY,yDAAyD,EACrE,aAAa,UAAU;AAC5B;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/v3/styles.js
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/v3/styles.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { styled } from '@elliemae/ds-system';\nimport type { DSTooltipV3T } from './propTypes';\n\ninterface StyledTooltipTextT {\n wrapWords: boolean;\n textAlign: DSTooltipV3T.TextAlignment;\n}\n\nexport const StyledTooltipContainer = styled.div`\n text-align: center;\n min-width: ${({ theme }) => theme.space.l};\n max-width: 250px;\n min-height: 30px;\n display: grid;\n align-items: center;\n padding: ${({ theme }) => `${theme.space.xxxs} ${theme.space.xs}`};\n position: relative;\n background-color: white;\n border-radius: 2px;\n font-size: 13px;\n color: ${({ theme }) => theme.colors.neutral[600]};\n`;\n\nexport const StyledTooltipText = styled.div<StyledTooltipTextT>`\n display: inline-block;\n text-align: ${({ textAlign }) => textAlign};\n word-wrap: break-word;\n ${({ wrapWords }) => (wrapWords ? `word-break: break-all;` : `white-space: normal;`)}\n`;\n\nexport const StyledMouseOverDetectionBox = styled.div`\n position: absolute;\n top: -15px;\n right: -15px;\n width: calc(100% + 30px);\n height: calc(100% + 30px);\n z-index: -1;\n`;\n\nexport const StyledTriggerWrapper = styled.div`\n display: inline-flex;\n width: 100%;\n`;\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACAA;AAQO,MAAM,yBAAyB,OAAO;AAAA;AAAA,eAE9B,CAAC,EAAE,YAAY,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,aAK7B,CAAC,EAAE,YAAY,GAAG,MAAM,MAAM,QAAQ,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,WAKpD,CAAC,EAAE,YAAY,MAAM,OAAO,QAAQ;AAAA;AAGxC,MAAM,oBAAoB,OAAO;AAAA;AAAA,gBAExB,CAAC,EAAE,gBAAgB;AAAA;AAAA,IAE/B,CAAC,EAAE,gBAAiB,YAAY,2BAA2B;AAAA;AAGxD,MAAM,8BAA8B,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS3C,MAAM,uBAAuB,OAAO;AAAA;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/v3/utils.js
CHANGED
package/dist/esm/v3/utils.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/v3/utils.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useEffect } from 'react';\n\nexport const useGlobalKeyboardListener = (func: ({ key }: { key: string }) => void) => {\n useEffect(() => {\n document.addEventListener('keydown', func);\n return () => document.removeEventListener('keydown', func);\n }, [func]);\n};\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "AAAA;ACAA;AAEO,MAAM,4BAA4B,CAAC,SAA6C;AACrF,YAAU,MAAM;AACd,aAAS,iBAAiB,WAAW,IAAI;AACzC,WAAO,MAAM,SAAS,oBAAoB,WAAW,IAAI;AAAA,EAC3D,GAAG,CAAC,IAAI,CAAC;AACX;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-tooltip",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.1-rc.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - Tooltip",
|
|
6
6
|
"files": [
|
|
@@ -95,14 +95,14 @@
|
|
|
95
95
|
"indent": 4
|
|
96
96
|
},
|
|
97
97
|
"dependencies": {
|
|
98
|
-
"@elliemae/ds-button": "3.3.
|
|
99
|
-
"@elliemae/ds-classnames": "3.3.
|
|
100
|
-
"@elliemae/ds-popper": "3.3.
|
|
101
|
-
"@elliemae/ds-popperjs": "3.3.
|
|
102
|
-
"@elliemae/ds-portal": "3.3.
|
|
103
|
-
"@elliemae/ds-shared": "3.3.
|
|
104
|
-
"@elliemae/ds-system": "3.3.
|
|
105
|
-
"@elliemae/ds-utilities": "3.3.
|
|
98
|
+
"@elliemae/ds-button": "3.3.1-rc.2",
|
|
99
|
+
"@elliemae/ds-classnames": "3.3.1-rc.2",
|
|
100
|
+
"@elliemae/ds-popper": "3.3.1-rc.2",
|
|
101
|
+
"@elliemae/ds-popperjs": "3.3.1-rc.2",
|
|
102
|
+
"@elliemae/ds-portal": "3.3.1-rc.2",
|
|
103
|
+
"@elliemae/ds-shared": "3.3.1-rc.2",
|
|
104
|
+
"@elliemae/ds-system": "3.3.1-rc.2",
|
|
105
|
+
"@elliemae/ds-utilities": "3.3.1-rc.2",
|
|
106
106
|
"@popperjs/core": "~2.11.5",
|
|
107
107
|
"react-popper": "~2.3.0"
|
|
108
108
|
},
|