@veeqo/ui 15.1.2 → 15.1.4
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/components/Alerts/Alert/Alert.cjs +1 -1
- package/dist/components/Alerts/Alert/Alert.cjs.map +1 -1
- package/dist/components/Alerts/Alert/Alert.js +1 -1
- package/dist/components/Alerts/Alert/Alert.js.map +1 -1
- package/dist/components/Image/Image.cjs +6 -12
- package/dist/components/Image/Image.cjs.map +1 -1
- package/dist/components/Image/Image.d.ts +1 -1
- package/dist/components/Image/Image.js +6 -12
- package/dist/components/Image/Image.js.map +1 -1
- package/dist/components/Popover/Popover.cjs +12 -33
- package/dist/components/Popover/Popover.cjs.map +1 -1
- package/dist/components/Popover/Popover.js +13 -33
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/Popover/types.d.ts +1 -1
- package/dist/components/Tooltip/Tooltip.module.scss.cjs +2 -2
- package/dist/components/Tooltip/Tooltip.module.scss.cjs.map +1 -1
- package/dist/components/Tooltip/Tooltip.module.scss.js +2 -2
- package/dist/components/Tooltip/Tooltip.module.scss.js.map +1 -1
- package/dist/components/Tooltip/components/TooltipPopover.cjs +6 -17
- package/dist/components/Tooltip/components/TooltipPopover.cjs.map +1 -1
- package/dist/components/Tooltip/components/TooltipPopover.js +7 -18
- package/dist/components/Tooltip/components/TooltipPopover.js.map +1 -1
- package/dist/components/Tooltip/components/types.d.ts +0 -5
- package/package.json +3 -9
|
@@ -26,7 +26,7 @@ const Alert = ({ size = 'base', variant = 'default', direction = 'horizontal', c
|
|
|
26
26
|
const DefaultIcon = constants.IconMap[variant];
|
|
27
27
|
const isVertical = direction === 'vertical';
|
|
28
28
|
const hasActions = ((_a = rightActions === null || rightActions === void 0 ? void 0 : rightActions.length) !== null && _a !== void 0 ? _a : 0) > 0 || Boolean(rightActionsSlot);
|
|
29
|
-
const hasSingleContent = !children && !
|
|
29
|
+
const hasSingleContent = !children && !((title || titleSlot) && (message || messageSlot));
|
|
30
30
|
return (React__default.default.createElement(FlexCol.FlexCol, { role: variant === 'error' ? 'alert' : 'status', gap: "none", className: buildClassnames.buildClassnames([
|
|
31
31
|
Alert_module.alertContainer,
|
|
32
32
|
Alert_module[`${size}-size`],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alert.cjs","sources":["../../../../src/components/Alerts/Alert/Alert.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Text } from '../../Text';\nimport { Button } from '../../Button';\nimport { Action } from '../../Action';\nimport { CrossIcon } from '../../../icons';\nimport { IconMap } from '../constants';\nimport { AlertProps } from './types';\nimport { FlexRow } from '../../Flex/FlexRow';\nimport { FlexCol } from '../../Flex/FlexCol';\nimport { assignCssVars, buildClassnames } from '../../../utils';\n\nimport alertStyles from '../Alerts.module.scss';\nimport styles from './Alert.module.scss';\n\n/**\n * Alert component for displaying contextual feedback messages with optional actions and close button.\n */\nexport const Alert = ({\n size = 'base',\n variant = 'default',\n direction = 'horizontal',\n colours: passedColours,\n rightActions,\n rightActionsSlot,\n title,\n titleSlot,\n messageSlot,\n message,\n children,\n iconSlot,\n onClickClose,\n className,\n ...divProps\n}: AlertProps) => {\n const DefaultIcon = IconMap[variant];\n const isVertical = direction === 'vertical';\n const hasActions = (rightActions?.length ?? 0) > 0 || Boolean(rightActionsSlot);\n const hasSingleContent = !children && !
|
|
1
|
+
{"version":3,"file":"Alert.cjs","sources":["../../../../src/components/Alerts/Alert/Alert.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Text } from '../../Text';\nimport { Button } from '../../Button';\nimport { Action } from '../../Action';\nimport { CrossIcon } from '../../../icons';\nimport { IconMap } from '../constants';\nimport { AlertProps } from './types';\nimport { FlexRow } from '../../Flex/FlexRow';\nimport { FlexCol } from '../../Flex/FlexCol';\nimport { assignCssVars, buildClassnames } from '../../../utils';\n\nimport alertStyles from '../Alerts.module.scss';\nimport styles from './Alert.module.scss';\n\n/**\n * Alert component for displaying contextual feedback messages with optional actions and close button.\n */\nexport const Alert = ({\n size = 'base',\n variant = 'default',\n direction = 'horizontal',\n colours: passedColours,\n rightActions,\n rightActionsSlot,\n title,\n titleSlot,\n messageSlot,\n message,\n children,\n iconSlot,\n onClickClose,\n className,\n ...divProps\n}: AlertProps) => {\n const DefaultIcon = IconMap[variant];\n const isVertical = direction === 'vertical';\n const hasActions = (rightActions?.length ?? 0) > 0 || Boolean(rightActionsSlot);\n const hasSingleContent = !children && !((title || titleSlot) && (message || messageSlot));\n\n return (\n <FlexCol\n role={variant === 'error' ? 'alert' : 'status'}\n gap=\"none\"\n className={buildClassnames([\n styles.alertContainer,\n styles[`${size}-size`],\n isVertical ? styles.vertical : undefined,\n hasSingleContent ? styles.centered : undefined,\n alertStyles[`${variant}-alert-variant`],\n className,\n ])}\n style={assignCssVars({ backgroundColor: passedColours?.background })}\n {...divProps}\n >\n <FlexRow\n style={assignCssVars({ iconColor: passedColours?.primary })}\n className={buildClassnames([alertStyles.icon, styles.iconArea])}\n >\n {iconSlot || <DefaultIcon role=\"presentation\" />}\n </FlexRow>\n\n <FlexCol className={styles.content} flexWrap=\"nowrap\">\n {children || (\n <FlexCol gap={size === 'xs' ? 'xs' : 'sm'}>\n {titleSlot ||\n (title && (\n <Text variant=\"bodyBold\" style={size === 'base' ? { lineHeight: '24px' } : {}}>\n {title}\n </Text>\n ))}\n {messageSlot || (message && <Text variant=\"body\">{message}</Text>)}\n </FlexCol>\n )}\n </FlexCol>\n\n {hasActions && (\n <FlexRow flexWrap=\"nowrap\" gap=\"sm\" className={styles.actions}>\n {rightActionsSlot}\n {rightActions?.map(({ label, ...actionProps }) => (\n <Button key={label} type=\"button\" size=\"sm\" {...actionProps}>\n {label}\n </Button>\n ))}\n </FlexRow>\n )}\n\n {onClickClose && (\n <Action\n variant=\"flat\"\n size=\"sm\"\n iconSlot={<CrossIcon />}\n onClick={onClickClose}\n aria-label=\"Close\"\n className={styles.close}\n />\n )}\n </FlexCol>\n );\n};\n"],"names":["IconMap","React","FlexCol","buildClassnames","styles","alertStyles","assignCssVars","FlexRow","Text","Button","Action","CrossIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;AAeA;;AAEG;MACU,KAAK,GAAG,CAAC,EACpB,IAAI,GAAG,MAAM,EACb,OAAO,GAAG,SAAS,EACnB,SAAS,GAAG,YAAY,EACxB,OAAO,EAAE,aAAa,EACtB,YAAY,EACZ,gBAAgB,EAChB,KAAK,EACL,SAAS,EACT,WAAW,EACX,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,GAAG,QAAQ,EACA,KAAI;;AACf,IAAA,MAAM,WAAW,GAAGA,iBAAO,CAAC,OAAO,CAAC;AACpC,IAAA,MAAM,UAAU,GAAG,SAAS,KAAK,UAAU;IAC3C,MAAM,UAAU,GAAG,CAAC,CAAA,EAAA,GAAA,YAAY,KAAA,IAAA,IAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,gBAAgB,CAAC;AAC/E,IAAA,MAAM,gBAAgB,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,KAAK,IAAI,SAAS,MAAM,OAAO,IAAI,WAAW,CAAC,CAAC;IAEzF,QACEC,sBAAA,CAAA,aAAA,CAACC,eAAO,EAAA,EACN,IAAI,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,GAAG,QAAQ,EAC9C,GAAG,EAAC,MAAM,EACV,SAAS,EAAEC,+BAAe,CAAC;AACzB,YAAAC,YAAM,CAAC,cAAc;AACrB,YAAAA,YAAM,CAAC,CAAA,EAAG,IAAI,CAAA,KAAA,CAAO,CAAC;YACtB,UAAU,GAAGA,YAAM,CAAC,QAAQ,GAAG,SAAS;YACxC,gBAAgB,GAAGA,YAAM,CAAC,QAAQ,GAAG,SAAS;AAC9C,YAAAC,aAAW,CAAC,CAAA,EAAG,OAAO,CAAA,cAAA,CAAgB,CAAC;YACvC,SAAS;AACV,SAAA,CAAC,EACF,KAAK,EAAEC,2BAAa,CAAC,EAAE,eAAe,EAAE,aAAa,KAAA,IAAA,IAAb,aAAa,uBAAb,aAAa,CAAE,UAAU,EAAE,CAAC,KAChE,QAAQ,EAAA;AAEZ,QAAAL,sBAAA,CAAA,aAAA,CAACM,eAAO,EAAA,EACN,KAAK,EAAED,2BAAa,CAAC,EAAE,SAAS,EAAE,aAAa,KAAA,IAAA,IAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,EAAE,CAAC,EAC3D,SAAS,EAAEH,+BAAe,CAAC,CAACE,aAAW,CAAC,IAAI,EAAED,YAAM,CAAC,QAAQ,CAAC,CAAC,IAE9D,QAAQ,IAAIH,qCAAC,WAAW,EAAA,EAAC,IAAI,EAAC,cAAc,GAAG,CACxC;AAEV,QAAAA,sBAAA,CAAA,aAAA,CAACC,eAAO,EAAA,EAAC,SAAS,EAAEE,YAAM,CAAC,OAAO,EAAE,QAAQ,EAAC,QAAQ,EAAA,EAClD,QAAQ,KACPH,sBAAA,CAAA,aAAA,CAACC,eAAO,EAAA,EAAC,GAAG,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EAAA;YACtC,SAAS;AACR,iBAAC,KAAK,KACJD,sBAAA,CAAA,aAAA,CAACO,SAAI,EAAA,EAAC,OAAO,EAAC,UAAU,EAAC,KAAK,EAAE,IAAI,KAAK,MAAM,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,EAAA,EAC1E,KAAK,CACD,CACR,CAAC;AACH,YAAA,WAAW,KAAK,OAAO,IAAIP,sBAAA,CAAA,aAAA,CAACO,SAAI,EAAA,EAAC,OAAO,EAAC,MAAM,IAAE,OAAO,CAAQ,CAAC,CAC1D,CACX,CACO;AAET,QAAA,UAAU,KACTP,sBAAA,CAAA,aAAA,CAACM,eAAO,EAAA,EAAC,QAAQ,EAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,EAAC,SAAS,EAAEH,YAAM,CAAC,OAAO,EAAA;YAC1D,gBAAgB,EAChB,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,MAAA,GAAA,MAAA;AAAZ,YAAA,YAAY,CAAE,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,MAC3CH,sBAAA,CAAA,aAAA,CAACQ,aAAM,EAAA,EAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,IAAI,EAAA,GAAK,WAAW,IACxD,KAAK,CACC,CACV,CAAC,CACM,CACX;AAEA,QAAA,YAAY,KACXR,sBAAA,CAAA,aAAA,CAACS,aAAM,IACL,OAAO,EAAC,MAAM,EACd,IAAI,EAAC,IAAI,EACT,QAAQ,EAAET,sBAAA,CAAA,aAAA,CAACU,wBAAS,EAAA,IAAA,CAAG,EACvB,OAAO,EAAE,YAAY,EAAA,YAAA,EACV,OAAO,EAClB,SAAS,EAAEP,YAAM,CAAC,KAAK,EAAA,CACvB,CACH,CACO;AAEd;;;;"}
|
|
@@ -20,7 +20,7 @@ const Alert = ({ size = 'base', variant = 'default', direction = 'horizontal', c
|
|
|
20
20
|
const DefaultIcon = IconMap[variant];
|
|
21
21
|
const isVertical = direction === 'vertical';
|
|
22
22
|
const hasActions = ((_a = rightActions === null || rightActions === void 0 ? void 0 : rightActions.length) !== null && _a !== void 0 ? _a : 0) > 0 || Boolean(rightActionsSlot);
|
|
23
|
-
const hasSingleContent = !children && !
|
|
23
|
+
const hasSingleContent = !children && !((title || titleSlot) && (message || messageSlot));
|
|
24
24
|
return (React__default.createElement(FlexCol, { role: variant === 'error' ? 'alert' : 'status', gap: "none", className: buildClassnames([
|
|
25
25
|
styles.alertContainer,
|
|
26
26
|
styles[`${size}-size`],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alert.js","sources":["../../../../src/components/Alerts/Alert/Alert.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Text } from '../../Text';\nimport { Button } from '../../Button';\nimport { Action } from '../../Action';\nimport { CrossIcon } from '../../../icons';\nimport { IconMap } from '../constants';\nimport { AlertProps } from './types';\nimport { FlexRow } from '../../Flex/FlexRow';\nimport { FlexCol } from '../../Flex/FlexCol';\nimport { assignCssVars, buildClassnames } from '../../../utils';\n\nimport alertStyles from '../Alerts.module.scss';\nimport styles from './Alert.module.scss';\n\n/**\n * Alert component for displaying contextual feedback messages with optional actions and close button.\n */\nexport const Alert = ({\n size = 'base',\n variant = 'default',\n direction = 'horizontal',\n colours: passedColours,\n rightActions,\n rightActionsSlot,\n title,\n titleSlot,\n messageSlot,\n message,\n children,\n iconSlot,\n onClickClose,\n className,\n ...divProps\n}: AlertProps) => {\n const DefaultIcon = IconMap[variant];\n const isVertical = direction === 'vertical';\n const hasActions = (rightActions?.length ?? 0) > 0 || Boolean(rightActionsSlot);\n const hasSingleContent = !children && !
|
|
1
|
+
{"version":3,"file":"Alert.js","sources":["../../../../src/components/Alerts/Alert/Alert.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Text } from '../../Text';\nimport { Button } from '../../Button';\nimport { Action } from '../../Action';\nimport { CrossIcon } from '../../../icons';\nimport { IconMap } from '../constants';\nimport { AlertProps } from './types';\nimport { FlexRow } from '../../Flex/FlexRow';\nimport { FlexCol } from '../../Flex/FlexCol';\nimport { assignCssVars, buildClassnames } from '../../../utils';\n\nimport alertStyles from '../Alerts.module.scss';\nimport styles from './Alert.module.scss';\n\n/**\n * Alert component for displaying contextual feedback messages with optional actions and close button.\n */\nexport const Alert = ({\n size = 'base',\n variant = 'default',\n direction = 'horizontal',\n colours: passedColours,\n rightActions,\n rightActionsSlot,\n title,\n titleSlot,\n messageSlot,\n message,\n children,\n iconSlot,\n onClickClose,\n className,\n ...divProps\n}: AlertProps) => {\n const DefaultIcon = IconMap[variant];\n const isVertical = direction === 'vertical';\n const hasActions = (rightActions?.length ?? 0) > 0 || Boolean(rightActionsSlot);\n const hasSingleContent = !children && !((title || titleSlot) && (message || messageSlot));\n\n return (\n <FlexCol\n role={variant === 'error' ? 'alert' : 'status'}\n gap=\"none\"\n className={buildClassnames([\n styles.alertContainer,\n styles[`${size}-size`],\n isVertical ? styles.vertical : undefined,\n hasSingleContent ? styles.centered : undefined,\n alertStyles[`${variant}-alert-variant`],\n className,\n ])}\n style={assignCssVars({ backgroundColor: passedColours?.background })}\n {...divProps}\n >\n <FlexRow\n style={assignCssVars({ iconColor: passedColours?.primary })}\n className={buildClassnames([alertStyles.icon, styles.iconArea])}\n >\n {iconSlot || <DefaultIcon role=\"presentation\" />}\n </FlexRow>\n\n <FlexCol className={styles.content} flexWrap=\"nowrap\">\n {children || (\n <FlexCol gap={size === 'xs' ? 'xs' : 'sm'}>\n {titleSlot ||\n (title && (\n <Text variant=\"bodyBold\" style={size === 'base' ? { lineHeight: '24px' } : {}}>\n {title}\n </Text>\n ))}\n {messageSlot || (message && <Text variant=\"body\">{message}</Text>)}\n </FlexCol>\n )}\n </FlexCol>\n\n {hasActions && (\n <FlexRow flexWrap=\"nowrap\" gap=\"sm\" className={styles.actions}>\n {rightActionsSlot}\n {rightActions?.map(({ label, ...actionProps }) => (\n <Button key={label} type=\"button\" size=\"sm\" {...actionProps}>\n {label}\n </Button>\n ))}\n </FlexRow>\n )}\n\n {onClickClose && (\n <Action\n variant=\"flat\"\n size=\"sm\"\n iconSlot={<CrossIcon />}\n onClick={onClickClose}\n aria-label=\"Close\"\n className={styles.close}\n />\n )}\n </FlexCol>\n );\n};\n"],"names":["React"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
|
-
var
|
|
4
|
+
var react = require('@floating-ui/react');
|
|
5
5
|
var reactDom = require('react-dom');
|
|
6
6
|
var PlaceholderImage = require('./components/PlaceholderImage.cjs');
|
|
7
7
|
var utils = require('./utils.cjs');
|
|
@@ -20,17 +20,11 @@ const Image = ({ src, alt = '', className, e2eClassName, width, height, previewW
|
|
|
20
20
|
const [isPreviewOpen, setIsPreviewOpen] = React.useState(false);
|
|
21
21
|
const [imageState, setImageState] = React.useState({ isLoaded: false, isError: false });
|
|
22
22
|
const [referenceElement, setReferenceElement] = React__default.default.useState(null);
|
|
23
|
-
const
|
|
24
|
-
|
|
23
|
+
const { refs, floatingStyles, placement: resolvedPlacement } = react.useFloating({
|
|
24
|
+
elements: { reference: referenceElement },
|
|
25
25
|
placement: previewPlacement,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
name: 'offset',
|
|
29
|
-
options: {
|
|
30
|
-
offset: [0, 12],
|
|
31
|
-
},
|
|
32
|
-
},
|
|
33
|
-
],
|
|
26
|
+
middleware: [react.offset(12), react.flip()],
|
|
27
|
+
whileElementsMounted: react.autoUpdate,
|
|
34
28
|
});
|
|
35
29
|
const openImagePreview = React.useCallback(() => (previewEnabled ? setIsPreviewOpen(true) : {}), [previewEnabled]);
|
|
36
30
|
const closeImagePreview = React.useCallback(() => (previewEnabled ? setIsPreviewOpen(false) : {}), [previewEnabled]);
|
|
@@ -52,7 +46,7 @@ const Image = ({ src, alt = '', className, e2eClassName, width, height, previewW
|
|
|
52
46
|
isImageHidden &&
|
|
53
47
|
(placeholder || (React__default.default.createElement(PlaceholderImage.PlaceholderImage, { className: buildClassnames.buildClassnames([classNames === null || classNames === void 0 ? void 0 : classNames.placeholder, e2eClassNames === null || e2eClassNames === void 0 ? void 0 : e2eClassNames.placeholder]), width: placeholderWidth || width, height: placeholderHeight || height }))),
|
|
54
48
|
isPreviewOpen &&
|
|
55
|
-
reactDom.createPortal(React__default.default.createElement("div", { ref:
|
|
49
|
+
reactDom.createPortal(React__default.default.createElement("div", { ref: refs.setFloating, style: floatingStyles, "data-placement": resolvedPlacement, className: buildClassnames.buildClassnames([
|
|
56
50
|
Image_module.previewImageContainer,
|
|
57
51
|
classNames === null || classNames === void 0 ? void 0 : classNames.previewImageContainer,
|
|
58
52
|
e2eClassNames === null || e2eClassNames === void 0 ? void 0 : e2eClassNames.previewImageContainer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Image.cjs","sources":["../../../src/components/Image/Image.tsx"],"sourcesContent":["import React, { useState, useCallback } from 'react';\nimport {
|
|
1
|
+
{"version":3,"file":"Image.cjs","sources":["../../../src/components/Image/Image.tsx"],"sourcesContent":["import React, { useState, useCallback } from 'react';\nimport { useFloating, offset, flip, autoUpdate, Placement } from '@floating-ui/react';\nimport { createPortal } from 'react-dom';\nimport { PlaceholderImage } from './components/PlaceholderImage';\n\nimport { generateClassNames } from './utils';\nimport { buildClassnames } from '../../utils/buildClassnames';\nimport { createContextAwareUrl } from '../Anchor/utils/urlUtils';\nimport imageStyles from './Image.module.scss';\n\ntype ImageProps = {\n src: string;\n alt?: string;\n className?: string;\n e2eClassName?: string;\n width?: string;\n height?: string;\n previewWidth?: string;\n previewHeight?: string;\n previewPlacement?: Placement;\n previewEnabled?: boolean;\n placeholder?: React.ReactNode;\n placeholderWidth?: string;\n placeholderHeight?: string;\n disablePlaceholder?: boolean;\n};\n\nexport const Image = ({\n src,\n alt = '',\n className,\n e2eClassName,\n width,\n height,\n previewWidth,\n previewHeight,\n previewPlacement = 'right',\n previewEnabled = false,\n placeholder,\n placeholderWidth,\n placeholderHeight,\n disablePlaceholder = false,\n}: ImageProps) => {\n const classNames = generateClassNames(className);\n const e2eClassNames = generateClassNames(e2eClassName);\n const contextAwareSrc = createContextAwareUrl(src);\n\n const [isPreviewOpen, setIsPreviewOpen] = useState(false);\n const [imageState, setImageState] = useState({ isLoaded: false, isError: false });\n\n const [referenceElement, setReferenceElement] = React.useState<HTMLImageElement | null>(null);\n const { refs, floatingStyles, placement: resolvedPlacement } = useFloating({\n elements: { reference: referenceElement },\n placement: previewPlacement,\n middleware: [offset(12), flip()],\n whileElementsMounted: autoUpdate,\n });\n\n const openImagePreview = useCallback(\n () => (previewEnabled ? setIsPreviewOpen(true) : {}),\n [previewEnabled],\n );\n const closeImagePreview = useCallback(\n () => (previewEnabled ? setIsPreviewOpen(false) : {}),\n [previewEnabled],\n );\n\n const onLoad = () => setImageState({ isLoaded: true, isError: false });\n const onError = () => setImageState({ isLoaded: true, isError: true });\n\n const isImageHidden = !imageState.isLoaded || imageState.isError;\n\n return (\n <div\n className={buildClassnames([\n classNames?.container,\n e2eClassNames?.container,\n className,\n ])}\n >\n <img\n src={contextAwareSrc}\n alt={alt}\n className={buildClassnames([\n imageStyles.image,\n previewEnabled && imageStyles.previewEnabled,\n classNames?.image,\n e2eClassNames?.image,\n ])}\n width={width}\n height={height}\n onLoad={onLoad}\n onError={onError}\n onMouseEnter={openImagePreview}\n onMouseLeave={closeImagePreview}\n style={isImageHidden ? { display: 'none' } : {}}\n ref={setReferenceElement}\n />\n {!disablePlaceholder &&\n isImageHidden &&\n (placeholder || (\n <PlaceholderImage\n className={buildClassnames([classNames?.placeholder, e2eClassNames?.placeholder])}\n width={placeholderWidth || width}\n height={placeholderHeight || height}\n />\n ))}\n {isPreviewOpen &&\n createPortal(\n <div\n ref={refs.setFloating}\n style={floatingStyles}\n data-placement={resolvedPlacement}\n className={buildClassnames([\n imageStyles.previewImageContainer,\n classNames?.previewImageContainer,\n e2eClassNames?.previewImageContainer,\n ])}\n >\n <img\n className={imageStyles.previewImage}\n src={contextAwareSrc}\n alt=\"\"\n width={previewWidth}\n height={previewHeight}\n />\n </div>,\n document.body,\n )}\n </div>\n );\n};\n"],"names":["generateClassNames","createContextAwareUrl","useState","React","useFloating","offset","flip","autoUpdate","useCallback","buildClassnames","imageStyles","PlaceholderImage","createPortal"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React__default, { useState, useCallback } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { useFloating, autoUpdate, offset, flip } from '@floating-ui/react';
|
|
3
3
|
import { createPortal } from 'react-dom';
|
|
4
4
|
import { PlaceholderImage } from './components/PlaceholderImage.js';
|
|
5
5
|
import { generateClassNames } from './utils.js';
|
|
@@ -14,17 +14,11 @@ const Image = ({ src, alt = '', className, e2eClassName, width, height, previewW
|
|
|
14
14
|
const [isPreviewOpen, setIsPreviewOpen] = useState(false);
|
|
15
15
|
const [imageState, setImageState] = useState({ isLoaded: false, isError: false });
|
|
16
16
|
const [referenceElement, setReferenceElement] = React__default.useState(null);
|
|
17
|
-
const
|
|
18
|
-
|
|
17
|
+
const { refs, floatingStyles, placement: resolvedPlacement } = useFloating({
|
|
18
|
+
elements: { reference: referenceElement },
|
|
19
19
|
placement: previewPlacement,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
name: 'offset',
|
|
23
|
-
options: {
|
|
24
|
-
offset: [0, 12],
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
],
|
|
20
|
+
middleware: [offset(12), flip()],
|
|
21
|
+
whileElementsMounted: autoUpdate,
|
|
28
22
|
});
|
|
29
23
|
const openImagePreview = useCallback(() => (previewEnabled ? setIsPreviewOpen(true) : {}), [previewEnabled]);
|
|
30
24
|
const closeImagePreview = useCallback(() => (previewEnabled ? setIsPreviewOpen(false) : {}), [previewEnabled]);
|
|
@@ -46,7 +40,7 @@ const Image = ({ src, alt = '', className, e2eClassName, width, height, previewW
|
|
|
46
40
|
isImageHidden &&
|
|
47
41
|
(placeholder || (React__default.createElement(PlaceholderImage, { className: buildClassnames([classNames === null || classNames === void 0 ? void 0 : classNames.placeholder, e2eClassNames === null || e2eClassNames === void 0 ? void 0 : e2eClassNames.placeholder]), width: placeholderWidth || width, height: placeholderHeight || height }))),
|
|
48
42
|
isPreviewOpen &&
|
|
49
|
-
createPortal(React__default.createElement("div", { ref:
|
|
43
|
+
createPortal(React__default.createElement("div", { ref: refs.setFloating, style: floatingStyles, "data-placement": resolvedPlacement, className: buildClassnames([
|
|
50
44
|
imageStyles.previewImageContainer,
|
|
51
45
|
classNames === null || classNames === void 0 ? void 0 : classNames.previewImageContainer,
|
|
52
46
|
e2eClassNames === null || e2eClassNames === void 0 ? void 0 : e2eClassNames.previewImageContainer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Image.js","sources":["../../../src/components/Image/Image.tsx"],"sourcesContent":["import React, { useState, useCallback } from 'react';\nimport {
|
|
1
|
+
{"version":3,"file":"Image.js","sources":["../../../src/components/Image/Image.tsx"],"sourcesContent":["import React, { useState, useCallback } from 'react';\nimport { useFloating, offset, flip, autoUpdate, Placement } from '@floating-ui/react';\nimport { createPortal } from 'react-dom';\nimport { PlaceholderImage } from './components/PlaceholderImage';\n\nimport { generateClassNames } from './utils';\nimport { buildClassnames } from '../../utils/buildClassnames';\nimport { createContextAwareUrl } from '../Anchor/utils/urlUtils';\nimport imageStyles from './Image.module.scss';\n\ntype ImageProps = {\n src: string;\n alt?: string;\n className?: string;\n e2eClassName?: string;\n width?: string;\n height?: string;\n previewWidth?: string;\n previewHeight?: string;\n previewPlacement?: Placement;\n previewEnabled?: boolean;\n placeholder?: React.ReactNode;\n placeholderWidth?: string;\n placeholderHeight?: string;\n disablePlaceholder?: boolean;\n};\n\nexport const Image = ({\n src,\n alt = '',\n className,\n e2eClassName,\n width,\n height,\n previewWidth,\n previewHeight,\n previewPlacement = 'right',\n previewEnabled = false,\n placeholder,\n placeholderWidth,\n placeholderHeight,\n disablePlaceholder = false,\n}: ImageProps) => {\n const classNames = generateClassNames(className);\n const e2eClassNames = generateClassNames(e2eClassName);\n const contextAwareSrc = createContextAwareUrl(src);\n\n const [isPreviewOpen, setIsPreviewOpen] = useState(false);\n const [imageState, setImageState] = useState({ isLoaded: false, isError: false });\n\n const [referenceElement, setReferenceElement] = React.useState<HTMLImageElement | null>(null);\n const { refs, floatingStyles, placement: resolvedPlacement } = useFloating({\n elements: { reference: referenceElement },\n placement: previewPlacement,\n middleware: [offset(12), flip()],\n whileElementsMounted: autoUpdate,\n });\n\n const openImagePreview = useCallback(\n () => (previewEnabled ? setIsPreviewOpen(true) : {}),\n [previewEnabled],\n );\n const closeImagePreview = useCallback(\n () => (previewEnabled ? setIsPreviewOpen(false) : {}),\n [previewEnabled],\n );\n\n const onLoad = () => setImageState({ isLoaded: true, isError: false });\n const onError = () => setImageState({ isLoaded: true, isError: true });\n\n const isImageHidden = !imageState.isLoaded || imageState.isError;\n\n return (\n <div\n className={buildClassnames([\n classNames?.container,\n e2eClassNames?.container,\n className,\n ])}\n >\n <img\n src={contextAwareSrc}\n alt={alt}\n className={buildClassnames([\n imageStyles.image,\n previewEnabled && imageStyles.previewEnabled,\n classNames?.image,\n e2eClassNames?.image,\n ])}\n width={width}\n height={height}\n onLoad={onLoad}\n onError={onError}\n onMouseEnter={openImagePreview}\n onMouseLeave={closeImagePreview}\n style={isImageHidden ? { display: 'none' } : {}}\n ref={setReferenceElement}\n />\n {!disablePlaceholder &&\n isImageHidden &&\n (placeholder || (\n <PlaceholderImage\n className={buildClassnames([classNames?.placeholder, e2eClassNames?.placeholder])}\n width={placeholderWidth || width}\n height={placeholderHeight || height}\n />\n ))}\n {isPreviewOpen &&\n createPortal(\n <div\n ref={refs.setFloating}\n style={floatingStyles}\n data-placement={resolvedPlacement}\n className={buildClassnames([\n imageStyles.previewImageContainer,\n classNames?.previewImageContainer,\n e2eClassNames?.previewImageContainer,\n ])}\n >\n <img\n className={imageStyles.previewImage}\n src={contextAwareSrc}\n alt=\"\"\n width={previewWidth}\n height={previewHeight}\n />\n </div>,\n document.body,\n )}\n </div>\n );\n};\n"],"names":["React"],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
|
-
var
|
|
5
|
-
var ResizeObserver = require('resize-observer-polyfill');
|
|
4
|
+
var react = require('@floating-ui/react');
|
|
6
5
|
var Portal = require('../Portal/Portal.cjs');
|
|
7
6
|
var index = require('../../theme/index.cjs');
|
|
8
7
|
var buildClassnames = require('../../utils/buildClassnames.cjs');
|
|
@@ -15,12 +14,15 @@ var Popover_module = require('./Popover.module.scss.cjs');
|
|
|
15
14
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
16
15
|
|
|
17
16
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
18
|
-
var ResizeObserver__default = /*#__PURE__*/_interopDefaultCompat(ResizeObserver);
|
|
19
17
|
|
|
20
18
|
const Popover = ({ id: passedId, children, zIndex = index.theme.layers.popup, placement = 'bottom', anchorElement, rootElementRef, onShouldClose, style, disableFocusLock, removeBackdrop = false, useAnchorWidth, ignoreAriaWarnings, className, ...dialogProps }) => {
|
|
21
|
-
// Set up
|
|
22
|
-
const
|
|
23
|
-
|
|
19
|
+
// Set up Floating UI positioning
|
|
20
|
+
const { refs, floatingStyles, placement: resolvedPlacement } = react.useFloating({
|
|
21
|
+
elements: { reference: anchorElement },
|
|
22
|
+
placement,
|
|
23
|
+
middleware: [react.flip()],
|
|
24
|
+
whileElementsMounted: react.autoUpdate,
|
|
25
|
+
});
|
|
24
26
|
// Setup popover id to use passed, or generate its' own.
|
|
25
27
|
const id = React.useMemo(() => passedId || generateId.generateId('popover'), [passedId]);
|
|
26
28
|
// Check and update aria for anchor, only works once this has rendered for the first time though.
|
|
@@ -30,42 +32,19 @@ const Popover = ({ id: passedId, children, zIndex = index.theme.layers.popup, pl
|
|
|
30
32
|
onShouldClose === null || onShouldClose === void 0 ? void 0 : onShouldClose();
|
|
31
33
|
};
|
|
32
34
|
const { handleKeyDown } = useHandleFocus.useHandleFocus({
|
|
33
|
-
popperElement,
|
|
35
|
+
popperElement: refs.floating.current,
|
|
34
36
|
anchorElement,
|
|
35
37
|
onClose,
|
|
36
38
|
disableFocusLock,
|
|
37
39
|
});
|
|
38
|
-
/**
|
|
39
|
-
* When content size is changed, force popper update
|
|
40
|
-
*/
|
|
41
|
-
React.useEffect(() => {
|
|
42
|
-
if (!update || !popperElement)
|
|
43
|
-
return undefined;
|
|
44
|
-
const resizeObserver = new ResizeObserver__default.default(update);
|
|
45
|
-
resizeObserver.observe(popperElement);
|
|
46
|
-
return () => {
|
|
47
|
-
resizeObserver.disconnect();
|
|
48
|
-
};
|
|
49
|
-
}, [update, popperElement]);
|
|
50
|
-
/**
|
|
51
|
-
* When window is resized, force popper update
|
|
52
|
-
*/
|
|
53
|
-
React.useEffect(() => {
|
|
54
|
-
if (!update)
|
|
55
|
-
return undefined;
|
|
56
|
-
window.addEventListener('resize', update);
|
|
57
|
-
return () => {
|
|
58
|
-
window.removeEventListener('resize', update);
|
|
59
|
-
};
|
|
60
|
-
}, [update]);
|
|
61
40
|
return (React__default.default.createElement(Portal.Portal, { rootElementRef: rootElementRef },
|
|
62
41
|
!removeBackdrop && (React__default.default.createElement("div", { className: Popover_module.backdrop, style: assignCssVars.assignCssVars({ zIndex }), onClick: onClose, "data-testid": "popover-backdrop" })),
|
|
63
|
-
React__default.default.createElement("dialog", { open: true, id: id, "data-dialog-type": "popover", className: buildClassnames.buildClassnames([Popover_module.dialog, className]), ref:
|
|
42
|
+
React__default.default.createElement("dialog", { open: true, id: id, "data-dialog-type": "popover", "data-placement": resolvedPlacement, className: buildClassnames.buildClassnames([Popover_module.dialog, className]), ref: refs.setFloating, style: {
|
|
64
43
|
...assignCssVars.assignCssVars({ zIndex: zIndex + 1 }),
|
|
65
|
-
...
|
|
44
|
+
...floatingStyles,
|
|
66
45
|
...style,
|
|
67
46
|
...(useAnchorWidth ? { minWidth: anchorElement === null || anchorElement === void 0 ? void 0 : anchorElement.clientWidth } : {}),
|
|
68
|
-
}, onKeyDown: handleKeyDown, ...
|
|
47
|
+
}, onKeyDown: handleKeyDown, ...dialogProps }, children)));
|
|
69
48
|
};
|
|
70
49
|
|
|
71
50
|
exports.Popover = Popover;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.cjs","sources":["../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import React, {
|
|
1
|
+
{"version":3,"file":"Popover.cjs","sources":["../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { useFloating, autoUpdate, flip } from '@floating-ui/react';\n\nimport { Portal } from '../Portal';\nimport { theme } from '../../theme';\nimport { buildClassnames, generateId, assignCssVars } from '../../utils';\nimport { useUpdateAriaAnchor } from './hooks/useUpdateAriaAnchor';\nimport { PopoverProps } from './types';\nimport { useHandleFocus } from './hooks/useHandleFocus';\nimport popoverStyles from './Popover.module.scss';\n\nexport const Popover = ({\n id: passedId,\n children,\n zIndex = theme.layers.popup,\n placement = 'bottom',\n anchorElement,\n rootElementRef,\n onShouldClose,\n style,\n disableFocusLock,\n removeBackdrop = false,\n useAnchorWidth,\n ignoreAriaWarnings,\n className,\n ...dialogProps\n}: PopoverProps) => {\n // Set up Floating UI positioning\n const { refs, floatingStyles, placement: resolvedPlacement } = useFloating({\n elements: { reference: anchorElement },\n placement,\n middleware: [flip()],\n whileElementsMounted: autoUpdate,\n });\n\n // Setup popover id to use passed, or generate its' own.\n const id = useMemo(() => passedId || generateId('popover'), [passedId]);\n\n // Check and update aria for anchor, only works once this has rendered for the first time though.\n useUpdateAriaAnchor({ anchorElement, popoverId: id, ignoreAriaWarnings });\n\n const onClose = () => {\n anchorElement?.focus();\n onShouldClose?.();\n };\n\n const { handleKeyDown } = useHandleFocus({\n popperElement: refs.floating.current as HTMLDialogElement | null,\n anchorElement,\n onClose,\n disableFocusLock,\n });\n\n return (\n <Portal rootElementRef={rootElementRef}>\n {!removeBackdrop && (\n <div\n className={popoverStyles.backdrop}\n style={assignCssVars({ zIndex })}\n onClick={onClose}\n data-testid=\"popover-backdrop\"\n />\n )}\n <dialog\n open\n id={id}\n data-dialog-type=\"popover\"\n data-placement={resolvedPlacement}\n className={buildClassnames([popoverStyles.dialog, className])}\n ref={refs.setFloating}\n style={{\n ...assignCssVars({ zIndex: zIndex + 1 }),\n ...floatingStyles,\n ...style,\n ...(useAnchorWidth ? { minWidth: anchorElement?.clientWidth } : {}),\n }}\n onKeyDown={handleKeyDown}\n {...dialogProps}\n >\n {children}\n </dialog>\n </Portal>\n );\n};\n"],"names":["theme","useFloating","flip","autoUpdate","useMemo","generateId","useUpdateAriaAnchor","useHandleFocus","React","Portal","popoverStyles","assignCssVars","buildClassnames"],"mappings":";;;;;;;;;;;;;;;;;MAWa,OAAO,GAAG,CAAC,EACtB,EAAE,EAAE,QAAQ,EACZ,QAAQ,EACR,MAAM,GAAGA,WAAK,CAAC,MAAM,CAAC,KAAK,EAC3B,SAAS,GAAG,QAAQ,EACpB,aAAa,EACb,cAAc,EACd,aAAa,EACb,KAAK,EACL,gBAAgB,EAChB,cAAc,GAAG,KAAK,EACtB,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,GAAG,WAAW,EACD,KAAI;;IAEjB,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAGC,iBAAW,CAAC;AACzE,QAAA,QAAQ,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE;QACtC,SAAS;AACT,QAAA,UAAU,EAAE,CAACC,UAAI,EAAE,CAAC;AACpB,QAAA,oBAAoB,EAAEC,gBAAU;AACjC,KAAA,CAAC;;AAGF,IAAA,MAAM,EAAE,GAAGC,aAAO,CAAC,MAAM,QAAQ,IAAIC,qBAAU,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;;IAGvEC,uCAAmB,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC;IAEzE,MAAM,OAAO,GAAG,MAAK;AACnB,QAAA,aAAa,aAAb,aAAa,KAAA,MAAA,GAAA,MAAA,GAAb,aAAa,CAAE,KAAK,EAAE;AACtB,QAAA,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,MAAA,GAAA,MAAA,GAAb,aAAa,EAAI;AACnB,IAAA,CAAC;AAED,IAAA,MAAM,EAAE,aAAa,EAAE,GAAGC,6BAAc,CAAC;AACvC,QAAA,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAmC;QAChE,aAAa;QACb,OAAO;QACP,gBAAgB;AACjB,KAAA,CAAC;AAEF,IAAA,QACEC,sBAAA,CAAA,aAAA,CAACC,aAAM,EAAA,EAAC,cAAc,EAAE,cAAc,EAAA;QACnC,CAAC,cAAc,KACdD,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEE,cAAa,CAAC,QAAQ,EACjC,KAAK,EAAEC,2BAAa,CAAC,EAAE,MAAM,EAAE,CAAC,EAChC,OAAO,EAAE,OAAO,EAAA,aAAA,EACJ,kBAAkB,EAAA,CAC9B,CACH;AACD,QAAAH,sBAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAA,IAAA,EACJ,EAAE,EAAE,EAAE,EAAA,kBAAA,EACW,SAAS,EAAA,gBAAA,EACV,iBAAiB,EACjC,SAAS,EAAEI,+BAAe,CAAC,CAACF,cAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAC7D,GAAG,EAAE,IAAI,CAAC,WAAW,EACrB,KAAK,EAAE;gBACL,GAAGC,2BAAa,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;AACxC,gBAAA,GAAG,cAAc;AACjB,gBAAA,GAAG,KAAK;gBACR,IAAI,cAAc,GAAG,EAAE,QAAQ,EAAE,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,MAAA,GAAA,MAAA,GAAb,aAAa,CAAE,WAAW,EAAE,GAAG,EAAE,CAAC;aACpE,EACD,SAAS,EAAE,aAAa,EAAA,GACpB,WAAW,IAEd,QAAQ,CACF,CACF;AAEb;;;;"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import React__default, {
|
|
2
|
-
import {
|
|
3
|
-
import ResizeObserver from 'resize-observer-polyfill';
|
|
1
|
+
import React__default, { useMemo } from 'react';
|
|
2
|
+
import { useFloating, autoUpdate, flip } from '@floating-ui/react';
|
|
4
3
|
import { Portal } from '../Portal/Portal.js';
|
|
5
4
|
import { theme } from '../../theme/index.js';
|
|
6
5
|
import { buildClassnames } from '../../utils/buildClassnames.js';
|
|
@@ -11,9 +10,13 @@ import { useHandleFocus } from './hooks/useHandleFocus.js';
|
|
|
11
10
|
import popoverStyles from './Popover.module.scss.js';
|
|
12
11
|
|
|
13
12
|
const Popover = ({ id: passedId, children, zIndex = theme.layers.popup, placement = 'bottom', anchorElement, rootElementRef, onShouldClose, style, disableFocusLock, removeBackdrop = false, useAnchorWidth, ignoreAriaWarnings, className, ...dialogProps }) => {
|
|
14
|
-
// Set up
|
|
15
|
-
const
|
|
16
|
-
|
|
13
|
+
// Set up Floating UI positioning
|
|
14
|
+
const { refs, floatingStyles, placement: resolvedPlacement } = useFloating({
|
|
15
|
+
elements: { reference: anchorElement },
|
|
16
|
+
placement,
|
|
17
|
+
middleware: [flip()],
|
|
18
|
+
whileElementsMounted: autoUpdate,
|
|
19
|
+
});
|
|
17
20
|
// Setup popover id to use passed, or generate its' own.
|
|
18
21
|
const id = useMemo(() => passedId || generateId('popover'), [passedId]);
|
|
19
22
|
// Check and update aria for anchor, only works once this has rendered for the first time though.
|
|
@@ -23,42 +26,19 @@ const Popover = ({ id: passedId, children, zIndex = theme.layers.popup, placemen
|
|
|
23
26
|
onShouldClose === null || onShouldClose === void 0 ? void 0 : onShouldClose();
|
|
24
27
|
};
|
|
25
28
|
const { handleKeyDown } = useHandleFocus({
|
|
26
|
-
popperElement,
|
|
29
|
+
popperElement: refs.floating.current,
|
|
27
30
|
anchorElement,
|
|
28
31
|
onClose,
|
|
29
32
|
disableFocusLock,
|
|
30
33
|
});
|
|
31
|
-
/**
|
|
32
|
-
* When content size is changed, force popper update
|
|
33
|
-
*/
|
|
34
|
-
useEffect(() => {
|
|
35
|
-
if (!update || !popperElement)
|
|
36
|
-
return undefined;
|
|
37
|
-
const resizeObserver = new ResizeObserver(update);
|
|
38
|
-
resizeObserver.observe(popperElement);
|
|
39
|
-
return () => {
|
|
40
|
-
resizeObserver.disconnect();
|
|
41
|
-
};
|
|
42
|
-
}, [update, popperElement]);
|
|
43
|
-
/**
|
|
44
|
-
* When window is resized, force popper update
|
|
45
|
-
*/
|
|
46
|
-
useEffect(() => {
|
|
47
|
-
if (!update)
|
|
48
|
-
return undefined;
|
|
49
|
-
window.addEventListener('resize', update);
|
|
50
|
-
return () => {
|
|
51
|
-
window.removeEventListener('resize', update);
|
|
52
|
-
};
|
|
53
|
-
}, [update]);
|
|
54
34
|
return (React__default.createElement(Portal, { rootElementRef: rootElementRef },
|
|
55
35
|
!removeBackdrop && (React__default.createElement("div", { className: popoverStyles.backdrop, style: assignCssVars({ zIndex }), onClick: onClose, "data-testid": "popover-backdrop" })),
|
|
56
|
-
React__default.createElement("dialog", { open: true, id: id, "data-dialog-type": "popover", className: buildClassnames([popoverStyles.dialog, className]), ref:
|
|
36
|
+
React__default.createElement("dialog", { open: true, id: id, "data-dialog-type": "popover", "data-placement": resolvedPlacement, className: buildClassnames([popoverStyles.dialog, className]), ref: refs.setFloating, style: {
|
|
57
37
|
...assignCssVars({ zIndex: zIndex + 1 }),
|
|
58
|
-
...
|
|
38
|
+
...floatingStyles,
|
|
59
39
|
...style,
|
|
60
40
|
...(useAnchorWidth ? { minWidth: anchorElement === null || anchorElement === void 0 ? void 0 : anchorElement.clientWidth } : {}),
|
|
61
|
-
}, onKeyDown: handleKeyDown, ...
|
|
41
|
+
}, onKeyDown: handleKeyDown, ...dialogProps }, children)));
|
|
62
42
|
};
|
|
63
43
|
|
|
64
44
|
export { Popover };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.js","sources":["../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import React, {
|
|
1
|
+
{"version":3,"file":"Popover.js","sources":["../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { useFloating, autoUpdate, flip } from '@floating-ui/react';\n\nimport { Portal } from '../Portal';\nimport { theme } from '../../theme';\nimport { buildClassnames, generateId, assignCssVars } from '../../utils';\nimport { useUpdateAriaAnchor } from './hooks/useUpdateAriaAnchor';\nimport { PopoverProps } from './types';\nimport { useHandleFocus } from './hooks/useHandleFocus';\nimport popoverStyles from './Popover.module.scss';\n\nexport const Popover = ({\n id: passedId,\n children,\n zIndex = theme.layers.popup,\n placement = 'bottom',\n anchorElement,\n rootElementRef,\n onShouldClose,\n style,\n disableFocusLock,\n removeBackdrop = false,\n useAnchorWidth,\n ignoreAriaWarnings,\n className,\n ...dialogProps\n}: PopoverProps) => {\n // Set up Floating UI positioning\n const { refs, floatingStyles, placement: resolvedPlacement } = useFloating({\n elements: { reference: anchorElement },\n placement,\n middleware: [flip()],\n whileElementsMounted: autoUpdate,\n });\n\n // Setup popover id to use passed, or generate its' own.\n const id = useMemo(() => passedId || generateId('popover'), [passedId]);\n\n // Check and update aria for anchor, only works once this has rendered for the first time though.\n useUpdateAriaAnchor({ anchorElement, popoverId: id, ignoreAriaWarnings });\n\n const onClose = () => {\n anchorElement?.focus();\n onShouldClose?.();\n };\n\n const { handleKeyDown } = useHandleFocus({\n popperElement: refs.floating.current as HTMLDialogElement | null,\n anchorElement,\n onClose,\n disableFocusLock,\n });\n\n return (\n <Portal rootElementRef={rootElementRef}>\n {!removeBackdrop && (\n <div\n className={popoverStyles.backdrop}\n style={assignCssVars({ zIndex })}\n onClick={onClose}\n data-testid=\"popover-backdrop\"\n />\n )}\n <dialog\n open\n id={id}\n data-dialog-type=\"popover\"\n data-placement={resolvedPlacement}\n className={buildClassnames([popoverStyles.dialog, className])}\n ref={refs.setFloating}\n style={{\n ...assignCssVars({ zIndex: zIndex + 1 }),\n ...floatingStyles,\n ...style,\n ...(useAnchorWidth ? { minWidth: anchorElement?.clientWidth } : {}),\n }}\n onKeyDown={handleKeyDown}\n {...dialogProps}\n >\n {children}\n </dialog>\n </Portal>\n );\n};\n"],"names":["React"],"mappings":";;;;;;;;;;;MAWa,OAAO,GAAG,CAAC,EACtB,EAAE,EAAE,QAAQ,EACZ,QAAQ,EACR,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAC3B,SAAS,GAAG,QAAQ,EACpB,aAAa,EACb,cAAc,EACd,aAAa,EACb,KAAK,EACL,gBAAgB,EAChB,cAAc,GAAG,KAAK,EACtB,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,GAAG,WAAW,EACD,KAAI;;IAEjB,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,WAAW,CAAC;AACzE,QAAA,QAAQ,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE;QACtC,SAAS;AACT,QAAA,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;AACpB,QAAA,oBAAoB,EAAE,UAAU;AACjC,KAAA,CAAC;;AAGF,IAAA,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;;IAGvE,mBAAmB,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC;IAEzE,MAAM,OAAO,GAAG,MAAK;AACnB,QAAA,aAAa,aAAb,aAAa,KAAA,MAAA,GAAA,MAAA,GAAb,aAAa,CAAE,KAAK,EAAE;AACtB,QAAA,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,MAAA,GAAA,MAAA,GAAb,aAAa,EAAI;AACnB,IAAA,CAAC;AAED,IAAA,MAAM,EAAE,aAAa,EAAE,GAAG,cAAc,CAAC;AACvC,QAAA,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAmC;QAChE,aAAa;QACb,OAAO;QACP,gBAAgB;AACjB,KAAA,CAAC;AAEF,IAAA,QACEA,cAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EAAC,cAAc,EAAE,cAAc,EAAA;QACnC,CAAC,cAAc,KACdA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,aAAa,CAAC,QAAQ,EACjC,KAAK,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,EAChC,OAAO,EAAE,OAAO,EAAA,aAAA,EACJ,kBAAkB,EAAA,CAC9B,CACH;AACD,QAAAA,cAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAA,IAAA,EACJ,EAAE,EAAE,EAAE,EAAA,kBAAA,EACW,SAAS,EAAA,gBAAA,EACV,iBAAiB,EACjC,SAAS,EAAE,eAAe,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAC7D,GAAG,EAAE,IAAI,CAAC,WAAW,EACrB,KAAK,EAAE;gBACL,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;AACxC,gBAAA,GAAG,cAAc;AACjB,gBAAA,GAAG,KAAK;gBACR,IAAI,cAAc,GAAG,EAAE,QAAQ,EAAE,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,MAAA,GAAA,MAAA,GAAb,aAAa,CAAE,WAAW,EAAE,GAAG,EAAE,CAAC;aACpE,EACD,SAAS,EAAE,aAAa,EAAA,GACpB,WAAW,IAEd,QAAQ,CACF,CACF;AAEb;;;;"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var ___$insertStyle = require('../../_virtual/____insertStyle.cjs');
|
|
4
4
|
|
|
5
|
-
___$insertStyle(".
|
|
6
|
-
var tooltipStyles = {"container":"
|
|
5
|
+
___$insertStyle("._container_1jkfb_1 {\n display: inline-block;\n}\n\n._hoverable_1jkfb_5 {\n display: inline-block;\n}\n\n._tip_1jkfb_9 {\n width: max-content;\n pointer-events: none;\n will-change: opacity, transform;\n z-index: var(--layers-tooltip);\n}\n._tip_1jkfb_9[data-placement^=top-start] > ._triangle_1jkfb_15 {\n left: 8px;\n bottom: 0;\n}\n._tip_1jkfb_9[data-placement^=top-end] > ._triangle_1jkfb_15 {\n right: 8px;\n bottom: 0;\n}\n._tip_1jkfb_9[data-placement^=bottom-start] > ._triangle_1jkfb_15 {\n left: 8px;\n top: -4px;\n}\n._tip_1jkfb_9[data-placement^=bottom-end] > ._triangle_1jkfb_15 {\n right: 8px;\n top: -4px;\n}\n\n._wrap_1jkfb_32 {\n display: inline-block;\n padding: var(--sizes-base) var(--sizes-5);\n overflow: hidden;\n z-index: 10;\n min-width: var(--tip-min-width);\n max-width: var(--tip-max-width);\n color: #fff;\n border-radius: var(--sizes-sm);\n box-shadow: var(--shadows-base);\n background: var(--colors-neutral-ink-dark);\n}\n\n._triangle_1jkfb_15 {\n background-color: var(--colors-neutral-ink-dark);\n height: 16px;\n width: 16px;\n position: absolute;\n transform: rotate(45deg);\n z-index: var(--layers-tooltip);\n}");
|
|
6
|
+
var tooltipStyles = {"container":"_container_1jkfb_1","hoverable":"_hoverable_1jkfb_5","tip":"_tip_1jkfb_9","triangle":"_triangle_1jkfb_15","wrap":"_wrap_1jkfb_32"};
|
|
7
7
|
|
|
8
8
|
module.exports = tooltipStyles;
|
|
9
9
|
//# sourceMappingURL=Tooltip.module.scss.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.module.scss.cjs","sources":["../../../src/components/Tooltip/Tooltip.module.scss"],"sourcesContent":[".container {\n display: inline-block;\n}\n\n.hoverable {\n display: inline-block;\n}\n\n.tip {\n width: max-content;\n pointer-events: none;\n will-change: opacity, transform;\n\n &[data-
|
|
1
|
+
{"version":3,"file":"Tooltip.module.scss.cjs","sources":["../../../src/components/Tooltip/Tooltip.module.scss"],"sourcesContent":[".container {\n display: inline-block;\n}\n\n.hoverable {\n display: inline-block;\n}\n\n.tip {\n width: max-content;\n pointer-events: none;\n will-change: opacity, transform;\n z-index: var(--layers-tooltip);\n\n &[data-placement^='top-start'] > .triangle {\n left: 8px;\n bottom: 0;\n }\n\n &[data-placement^='top-end'] > .triangle {\n right: 8px;\n bottom: 0;\n }\n\n &[data-placement^='bottom-start'] > .triangle {\n left: 8px;\n top: -4px;\n }\n\n &[data-placement^='bottom-end'] > .triangle {\n right: 8px;\n top: -4px;\n }\n}\n\n.wrap {\n display: inline-block;\n padding: var(--sizes-base) var(--sizes-5);\n overflow: hidden;\n z-index: 10;\n min-width: var(--tip-min-width);\n max-width: var(--tip-max-width);\n color: #fff;\n border-radius: var(--sizes-sm);\n box-shadow: var(--shadows-base);\n background: var(--colors-neutral-ink-dark);\n}\n\n.triangle {\n background-color: var(--colors-neutral-ink-dark);\n height: 16px;\n width: 16px;\n position: absolute;\n transform: rotate(45deg);\n z-index: var(--layers-tooltip);\n}\n"],"names":[],"mappings":";;;;AACE,eAAA,CAAA,2pCAAA;;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import insertStyle from '../../_virtual/____insertStyle.js';
|
|
2
2
|
|
|
3
|
-
insertStyle(".
|
|
4
|
-
var tooltipStyles = {"container":"
|
|
3
|
+
insertStyle("._container_1jkfb_1 {\n display: inline-block;\n}\n\n._hoverable_1jkfb_5 {\n display: inline-block;\n}\n\n._tip_1jkfb_9 {\n width: max-content;\n pointer-events: none;\n will-change: opacity, transform;\n z-index: var(--layers-tooltip);\n}\n._tip_1jkfb_9[data-placement^=top-start] > ._triangle_1jkfb_15 {\n left: 8px;\n bottom: 0;\n}\n._tip_1jkfb_9[data-placement^=top-end] > ._triangle_1jkfb_15 {\n right: 8px;\n bottom: 0;\n}\n._tip_1jkfb_9[data-placement^=bottom-start] > ._triangle_1jkfb_15 {\n left: 8px;\n top: -4px;\n}\n._tip_1jkfb_9[data-placement^=bottom-end] > ._triangle_1jkfb_15 {\n right: 8px;\n top: -4px;\n}\n\n._wrap_1jkfb_32 {\n display: inline-block;\n padding: var(--sizes-base) var(--sizes-5);\n overflow: hidden;\n z-index: 10;\n min-width: var(--tip-min-width);\n max-width: var(--tip-max-width);\n color: #fff;\n border-radius: var(--sizes-sm);\n box-shadow: var(--shadows-base);\n background: var(--colors-neutral-ink-dark);\n}\n\n._triangle_1jkfb_15 {\n background-color: var(--colors-neutral-ink-dark);\n height: 16px;\n width: 16px;\n position: absolute;\n transform: rotate(45deg);\n z-index: var(--layers-tooltip);\n}");
|
|
4
|
+
var tooltipStyles = {"container":"_container_1jkfb_1","hoverable":"_hoverable_1jkfb_5","tip":"_tip_1jkfb_9","triangle":"_triangle_1jkfb_15","wrap":"_wrap_1jkfb_32"};
|
|
5
5
|
|
|
6
6
|
export { tooltipStyles as default };
|
|
7
7
|
//# sourceMappingURL=Tooltip.module.scss.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.module.scss.js","sources":["../../../src/components/Tooltip/Tooltip.module.scss"],"sourcesContent":[".container {\n display: inline-block;\n}\n\n.hoverable {\n display: inline-block;\n}\n\n.tip {\n width: max-content;\n pointer-events: none;\n will-change: opacity, transform;\n\n &[data-
|
|
1
|
+
{"version":3,"file":"Tooltip.module.scss.js","sources":["../../../src/components/Tooltip/Tooltip.module.scss"],"sourcesContent":[".container {\n display: inline-block;\n}\n\n.hoverable {\n display: inline-block;\n}\n\n.tip {\n width: max-content;\n pointer-events: none;\n will-change: opacity, transform;\n z-index: var(--layers-tooltip);\n\n &[data-placement^='top-start'] > .triangle {\n left: 8px;\n bottom: 0;\n }\n\n &[data-placement^='top-end'] > .triangle {\n right: 8px;\n bottom: 0;\n }\n\n &[data-placement^='bottom-start'] > .triangle {\n left: 8px;\n top: -4px;\n }\n\n &[data-placement^='bottom-end'] > .triangle {\n right: 8px;\n top: -4px;\n }\n}\n\n.wrap {\n display: inline-block;\n padding: var(--sizes-base) var(--sizes-5);\n overflow: hidden;\n z-index: 10;\n min-width: var(--tip-min-width);\n max-width: var(--tip-max-width);\n color: #fff;\n border-radius: var(--sizes-sm);\n box-shadow: var(--shadows-base);\n background: var(--colors-neutral-ink-dark);\n}\n\n.triangle {\n background-color: var(--colors-neutral-ink-dark);\n height: 16px;\n width: 16px;\n position: absolute;\n transform: rotate(45deg);\n z-index: var(--layers-tooltip);\n}\n"],"names":["___$insertStyle"],"mappings":";;AACEA,WAAA,CAAA,2pCAAA;;;;;"}
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var framerMotion = require('framer-motion');
|
|
5
|
-
var
|
|
5
|
+
var react = require('@floating-ui/react');
|
|
6
6
|
var types = require('../types.cjs');
|
|
7
|
-
var index = require('../../../theme/index.cjs');
|
|
8
7
|
var Text = require('../../Text/Text.cjs');
|
|
9
8
|
var buildClassnames = require('../../../utils/buildClassnames.cjs');
|
|
10
9
|
require('uid/secure');
|
|
@@ -21,25 +20,15 @@ const defaultConfig = {
|
|
|
21
20
|
tipMaxWidth: 340,
|
|
22
21
|
};
|
|
23
22
|
const TooltipPopover = ({ content, text, hoverableElement, config, reversed, withTriangle, legacyClassNames, }) => {
|
|
24
|
-
const [popperElement, setPopperElement] = React.useState(null);
|
|
25
23
|
const usedConfig = { ...defaultConfig, ...config };
|
|
26
24
|
const { side, tipMinWidth, tipMaxWidth } = usedConfig;
|
|
27
|
-
const {
|
|
25
|
+
const { refs, floatingStyles, placement } = react.useFloating({
|
|
26
|
+
elements: { reference: hoverableElement },
|
|
28
27
|
placement: `${side}-${reversed ? 'end' : 'start'}`,
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
name: 'offset',
|
|
32
|
-
options: {
|
|
33
|
-
offset: [0, 8],
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
],
|
|
28
|
+
middleware: [react.offset(8), react.flip()],
|
|
29
|
+
whileElementsMounted: react.autoUpdate,
|
|
37
30
|
});
|
|
38
|
-
|
|
39
|
-
...popperStyles.popper,
|
|
40
|
-
zIndex: index.theme.layers.tooltip,
|
|
41
|
-
};
|
|
42
|
-
return (React__default.default.createElement(framerMotion.motion.div, { key: "tooltip-tip", className: buildClassnames.buildClassnames([Tooltip_module.tip, legacyClassNames === null || legacyClassNames === void 0 ? void 0 : legacyClassNames.tip]), ref: setPopperElement, style: tipInlineStyles, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.15 }, ...attributes.popper, role: "tooltip" },
|
|
31
|
+
return (React__default.default.createElement(framerMotion.motion.div, { key: "tooltip-tip", className: buildClassnames.buildClassnames([Tooltip_module.tip, legacyClassNames === null || legacyClassNames === void 0 ? void 0 : legacyClassNames.tip]), ref: refs.setFloating, style: floatingStyles, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.15 }, "data-placement": placement, role: "tooltip" },
|
|
43
32
|
React__default.default.createElement("div", { className: buildClassnames.buildClassnames([Tooltip_module.wrap, legacyClassNames === null || legacyClassNames === void 0 ? void 0 : legacyClassNames.wrap]), style: assignCssVars.assignCssVars({ tipMinWidth: `${tipMinWidth}px`, tipMaxWidth: `${tipMaxWidth}px` }) }, content !== null && content !== void 0 ? content : (React__default.default.createElement(Text.Text, { variant: "bodySmall", style: { color: 'white' } }, text))),
|
|
44
33
|
withTriangle && React__default.default.createElement("div", { id: "veeqo-components-triangle", className: buildClassnames.buildClassnames([Tooltip_module.triangle, legacyClassNames === null || legacyClassNames === void 0 ? void 0 : legacyClassNames.triangle]) })));
|
|
45
34
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipPopover.cjs","sources":["../../../../src/components/Tooltip/components/TooltipPopover.tsx"],"sourcesContent":["import React
|
|
1
|
+
{"version":3,"file":"TooltipPopover.cjs","sources":["../../../../src/components/Tooltip/components/TooltipPopover.tsx"],"sourcesContent":["import React from 'react';\nimport { motion } from 'framer-motion';\nimport { useFloating, offset, flip, autoUpdate, Placement } from '@floating-ui/react';\nimport { IConfig, Sides } from '../types';\nimport { TooltipPopoverProps } from './types';\nimport { Text } from '../../Text';\nimport { assignCssVars, buildClassnames } from '../../../utils';\nimport tooltipStyles from '../Tooltip.module.scss';\n\nconst defaultConfig: IConfig = {\n side: Sides.TOP,\n tipMinWidth: 60,\n tipMaxWidth: 340,\n};\n\nexport const TooltipPopover = ({\n content,\n text,\n hoverableElement,\n config,\n reversed,\n withTriangle,\n legacyClassNames,\n}: TooltipPopoverProps) => {\n const usedConfig = { ...defaultConfig, ...config };\n const { side, tipMinWidth, tipMaxWidth } = usedConfig;\n\n const { refs, floatingStyles, placement } = useFloating({\n elements: { reference: hoverableElement },\n placement: `${side}-${reversed ? 'end' : 'start'}` as Placement,\n middleware: [offset(8), flip()],\n whileElementsMounted: autoUpdate,\n });\n\n return (\n <motion.div\n key=\"tooltip-tip\"\n className={buildClassnames([tooltipStyles.tip, legacyClassNames?.tip])}\n ref={refs.setFloating}\n style={floatingStyles}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.15 }}\n data-placement={placement}\n role=\"tooltip\"\n >\n <div\n className={buildClassnames([tooltipStyles.wrap, legacyClassNames?.wrap])}\n style={assignCssVars({ tipMinWidth: `${tipMinWidth}px`, tipMaxWidth: `${tipMaxWidth}px` })}\n >\n {content ?? (\n <Text variant=\"bodySmall\" style={{ color: 'white' }}>\n {text}\n </Text>\n )}\n </div>\n {withTriangle && <div id=\"veeqo-components-triangle\" className={buildClassnames([tooltipStyles.triangle, legacyClassNames?.triangle])} />}\n </motion.div>\n );\n};\n"],"names":["Sides","useFloating","offset","flip","autoUpdate","React","motion","buildClassnames","tooltipStyles","assignCssVars","Text"],"mappings":";;;;;;;;;;;;;;;;AASA,MAAM,aAAa,GAAY;IAC7B,IAAI,EAAEA,WAAK,CAAC,GAAG;AACf,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,WAAW,EAAE,GAAG;CACjB;MAEY,cAAc,GAAG,CAAC,EAC7B,OAAO,EACP,IAAI,EACJ,gBAAgB,EAChB,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,gBAAgB,GACI,KAAI;IACxB,MAAM,UAAU,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE;IAClD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,UAAU;IAErD,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,GAAGC,iBAAW,CAAC;AACtD,QAAA,QAAQ,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE;AACzC,QAAA,SAAS,EAAE,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAA,CAAe;QAC/D,UAAU,EAAE,CAACC,YAAM,CAAC,CAAC,CAAC,EAAEC,UAAI,EAAE,CAAC;AAC/B,QAAA,oBAAoB,EAAEC,gBAAU;AACjC,KAAA,CAAC;AAEF,IAAA,QACEC,sBAAA,CAAA,aAAA,CAACC,mBAAM,CAAC,GAAG,EAAA,EACT,GAAG,EAAC,aAAa,EACjB,SAAS,EAAEC,+BAAe,CAAC,CAACC,cAAa,CAAC,GAAG,EAAE,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,GAAG,CAAC,CAAC,EACtE,GAAG,EAAE,IAAI,CAAC,WAAW,EACrB,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACvB,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACvB,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACpB,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAA,gBAAA,EACd,SAAS,EACzB,IAAI,EAAC,SAAS,EAAA;AAEd,QAAAH,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEE,+BAAe,CAAC,CAACC,cAAa,CAAC,IAAI,EAAE,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,IAAI,CAAC,CAAC,EACxE,KAAK,EAAEC,2BAAa,CAAC,EAAE,WAAW,EAAE,CAAA,EAAG,WAAW,IAAI,EAAE,WAAW,EAAE,CAAA,EAAG,WAAW,CAAA,EAAA,CAAI,EAAE,CAAC,EAAA,EAEzF,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAP,OAAO,IACNJ,qCAACK,SAAI,EAAA,EAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAA,EAChD,IAAI,CACA,CACR,CACG;QACL,YAAY,IAAIL,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,EAAE,EAAC,2BAA2B,EAAC,SAAS,EAAEE,+BAAe,CAAC,CAACC,cAAa,CAAC,QAAQ,EAAE,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,QAAQ,CAAC,CAAC,EAAA,CAAI,CAC9H;AAEjB;;;;"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import React__default
|
|
1
|
+
import React__default from 'react';
|
|
2
2
|
import { motion } from 'framer-motion';
|
|
3
|
-
import {
|
|
3
|
+
import { useFloating, autoUpdate, offset, flip } from '@floating-ui/react';
|
|
4
4
|
import { Sides } from '../types.js';
|
|
5
|
-
import { theme } from '../../../theme/index.js';
|
|
6
5
|
import { Text } from '../../Text/Text.js';
|
|
7
6
|
import { buildClassnames } from '../../../utils/buildClassnames.js';
|
|
8
7
|
import 'uid/secure';
|
|
@@ -15,25 +14,15 @@ const defaultConfig = {
|
|
|
15
14
|
tipMaxWidth: 340,
|
|
16
15
|
};
|
|
17
16
|
const TooltipPopover = ({ content, text, hoverableElement, config, reversed, withTriangle, legacyClassNames, }) => {
|
|
18
|
-
const [popperElement, setPopperElement] = useState(null);
|
|
19
17
|
const usedConfig = { ...defaultConfig, ...config };
|
|
20
18
|
const { side, tipMinWidth, tipMaxWidth } = usedConfig;
|
|
21
|
-
const {
|
|
19
|
+
const { refs, floatingStyles, placement } = useFloating({
|
|
20
|
+
elements: { reference: hoverableElement },
|
|
22
21
|
placement: `${side}-${reversed ? 'end' : 'start'}`,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
name: 'offset',
|
|
26
|
-
options: {
|
|
27
|
-
offset: [0, 8],
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
],
|
|
22
|
+
middleware: [offset(8), flip()],
|
|
23
|
+
whileElementsMounted: autoUpdate,
|
|
31
24
|
});
|
|
32
|
-
|
|
33
|
-
...popperStyles.popper,
|
|
34
|
-
zIndex: theme.layers.tooltip,
|
|
35
|
-
};
|
|
36
|
-
return (React__default.createElement(motion.div, { key: "tooltip-tip", className: buildClassnames([tooltipStyles.tip, legacyClassNames === null || legacyClassNames === void 0 ? void 0 : legacyClassNames.tip]), ref: setPopperElement, style: tipInlineStyles, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.15 }, ...attributes.popper, role: "tooltip" },
|
|
25
|
+
return (React__default.createElement(motion.div, { key: "tooltip-tip", className: buildClassnames([tooltipStyles.tip, legacyClassNames === null || legacyClassNames === void 0 ? void 0 : legacyClassNames.tip]), ref: refs.setFloating, style: floatingStyles, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.15 }, "data-placement": placement, role: "tooltip" },
|
|
37
26
|
React__default.createElement("div", { className: buildClassnames([tooltipStyles.wrap, legacyClassNames === null || legacyClassNames === void 0 ? void 0 : legacyClassNames.wrap]), style: assignCssVars({ tipMinWidth: `${tipMinWidth}px`, tipMaxWidth: `${tipMaxWidth}px` }) }, content !== null && content !== void 0 ? content : (React__default.createElement(Text, { variant: "bodySmall", style: { color: 'white' } }, text))),
|
|
38
27
|
withTriangle && React__default.createElement("div", { id: "veeqo-components-triangle", className: buildClassnames([tooltipStyles.triangle, legacyClassNames === null || legacyClassNames === void 0 ? void 0 : legacyClassNames.triangle]) })));
|
|
39
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipPopover.js","sources":["../../../../src/components/Tooltip/components/TooltipPopover.tsx"],"sourcesContent":["import React
|
|
1
|
+
{"version":3,"file":"TooltipPopover.js","sources":["../../../../src/components/Tooltip/components/TooltipPopover.tsx"],"sourcesContent":["import React from 'react';\nimport { motion } from 'framer-motion';\nimport { useFloating, offset, flip, autoUpdate, Placement } from '@floating-ui/react';\nimport { IConfig, Sides } from '../types';\nimport { TooltipPopoverProps } from './types';\nimport { Text } from '../../Text';\nimport { assignCssVars, buildClassnames } from '../../../utils';\nimport tooltipStyles from '../Tooltip.module.scss';\n\nconst defaultConfig: IConfig = {\n side: Sides.TOP,\n tipMinWidth: 60,\n tipMaxWidth: 340,\n};\n\nexport const TooltipPopover = ({\n content,\n text,\n hoverableElement,\n config,\n reversed,\n withTriangle,\n legacyClassNames,\n}: TooltipPopoverProps) => {\n const usedConfig = { ...defaultConfig, ...config };\n const { side, tipMinWidth, tipMaxWidth } = usedConfig;\n\n const { refs, floatingStyles, placement } = useFloating({\n elements: { reference: hoverableElement },\n placement: `${side}-${reversed ? 'end' : 'start'}` as Placement,\n middleware: [offset(8), flip()],\n whileElementsMounted: autoUpdate,\n });\n\n return (\n <motion.div\n key=\"tooltip-tip\"\n className={buildClassnames([tooltipStyles.tip, legacyClassNames?.tip])}\n ref={refs.setFloating}\n style={floatingStyles}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.15 }}\n data-placement={placement}\n role=\"tooltip\"\n >\n <div\n className={buildClassnames([tooltipStyles.wrap, legacyClassNames?.wrap])}\n style={assignCssVars({ tipMinWidth: `${tipMinWidth}px`, tipMaxWidth: `${tipMaxWidth}px` })}\n >\n {content ?? (\n <Text variant=\"bodySmall\" style={{ color: 'white' }}>\n {text}\n </Text>\n )}\n </div>\n {withTriangle && <div id=\"veeqo-components-triangle\" className={buildClassnames([tooltipStyles.triangle, legacyClassNames?.triangle])} />}\n </motion.div>\n );\n};\n"],"names":["React"],"mappings":";;;;;;;;;;AASA,MAAM,aAAa,GAAY;IAC7B,IAAI,EAAE,KAAK,CAAC,GAAG;AACf,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,WAAW,EAAE,GAAG;CACjB;MAEY,cAAc,GAAG,CAAC,EAC7B,OAAO,EACP,IAAI,EACJ,gBAAgB,EAChB,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,gBAAgB,GACI,KAAI;IACxB,MAAM,UAAU,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE;IAClD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,UAAU;IAErD,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;AACtD,QAAA,QAAQ,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE;AACzC,QAAA,SAAS,EAAE,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAA,CAAe;QAC/D,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;AAC/B,QAAA,oBAAoB,EAAE,UAAU;AACjC,KAAA,CAAC;AAEF,IAAA,QACEA,cAAA,CAAA,aAAA,CAAC,MAAM,CAAC,GAAG,EAAA,EACT,GAAG,EAAC,aAAa,EACjB,SAAS,EAAE,eAAe,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,GAAG,CAAC,CAAC,EACtE,GAAG,EAAE,IAAI,CAAC,WAAW,EACrB,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACvB,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACvB,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACpB,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAA,gBAAA,EACd,SAAS,EACzB,IAAI,EAAC,SAAS,EAAA;AAEd,QAAAA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,eAAe,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,IAAI,CAAC,CAAC,EACxE,KAAK,EAAE,aAAa,CAAC,EAAE,WAAW,EAAE,CAAA,EAAG,WAAW,IAAI,EAAE,WAAW,EAAE,CAAA,EAAG,WAAW,CAAA,EAAA,CAAI,EAAE,CAAC,EAAA,EAEzF,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAP,OAAO,IACNA,6BAAC,IAAI,EAAA,EAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAA,EAChD,IAAI,CACA,CACR,CACG;QACL,YAAY,IAAIA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,EAAE,EAAC,2BAA2B,EAAC,SAAS,EAAE,eAAe,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,QAAQ,CAAC,CAAC,EAAA,CAAI,CAC9H;AAEjB;;;;"}
|
|
@@ -8,8 +8,3 @@ export type TooltipPopoverProps = {
|
|
|
8
8
|
hoverableElement: HTMLElement | null;
|
|
9
9
|
legacyClassNames?: LegacyClassNames;
|
|
10
10
|
} & Pick<TooltipProps, 'config' | 'withTriangle' | 'reversed' | 'content' | 'text'>;
|
|
11
|
-
export declare enum Position {
|
|
12
|
-
end = "end",
|
|
13
|
-
start = "start"
|
|
14
|
-
}
|
|
15
|
-
export type Placement = 'top-start' | 'bottom-start' | 'top-end' | 'bottom-end';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veeqo/ui",
|
|
3
|
-
"version": "15.1.
|
|
3
|
+
"version": "15.1.4",
|
|
4
4
|
"description": "New optimised component library for Veeqo.",
|
|
5
5
|
"author": "Robert Wealthall",
|
|
6
6
|
"license": "ISC",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"@figma-export/output-components-as-svg": "^6.2.2",
|
|
59
59
|
"@figma-export/transform-svg-with-svgo": "^6.2.2",
|
|
60
60
|
"@figma/code-connect": "^1.4.4",
|
|
61
|
-
"@
|
|
61
|
+
"@floating-ui/react": "^0.27.19",
|
|
62
62
|
"@rollup/plugin-commonjs": "^28.0.2",
|
|
63
63
|
"@rollup/plugin-node-resolve": "^16.0.0",
|
|
64
64
|
"@rollup/plugin-typescript": "^12.1.2",
|
|
@@ -111,7 +111,6 @@
|
|
|
111
111
|
"prettier": "^3.0.3",
|
|
112
112
|
"react": "^19.0.0",
|
|
113
113
|
"react-dom": "^19.0.0",
|
|
114
|
-
"react-popper": "^2.2.5",
|
|
115
114
|
"react-transition-group": "^4.3.0",
|
|
116
115
|
"remark-gfm": "^4.0.1",
|
|
117
116
|
"resize-observer-polyfill": "^1.5.1",
|
|
@@ -129,15 +128,14 @@
|
|
|
129
128
|
"typescript": "^5.2.2"
|
|
130
129
|
},
|
|
131
130
|
"peerDependencies": {
|
|
131
|
+
"@floating-ui/react": "^0.27.19",
|
|
132
132
|
"@internationalized/date": "^3.5.4",
|
|
133
|
-
"@popperjs/core": "^2.11.8",
|
|
134
133
|
"@tanstack/react-table": "^8.21.2",
|
|
135
134
|
"framer-motion": ">=6.5.1",
|
|
136
135
|
"lodash.throttle": "^4.1.1",
|
|
137
136
|
"react": "^17.0.2 || ^18.0.0 || ^19.0.0",
|
|
138
137
|
"react-aria-components": "^1.2.1",
|
|
139
138
|
"react-dom": "^17.0.2 || ^18.0.0 || ^19.0.0",
|
|
140
|
-
"react-popper": "^2.2.5",
|
|
141
139
|
"react-transition-group": "^4.3.0",
|
|
142
140
|
"resize-observer-polyfill": "^1.5.1",
|
|
143
141
|
"uid": "^2.0.2"
|
|
@@ -151,10 +149,6 @@
|
|
|
151
149
|
},
|
|
152
150
|
"@figma/code-connect": {
|
|
153
151
|
"typescript": "$typescript"
|
|
154
|
-
},
|
|
155
|
-
"react-popper": {
|
|
156
|
-
"react": "$react",
|
|
157
|
-
"react-dom": "$react-dom"
|
|
158
152
|
}
|
|
159
153
|
}
|
|
160
154
|
}
|