@infomaximum/ui-kit 0.13.4 → 0.14.0
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/BaseSelect/BaseSelect.tokens.d.ts +1 -1
- package/dist/components/BaseTooltip/BaseTooltip.js +10 -26
- package/dist/components/BaseTooltip/BaseTooltip.types.d.ts +10 -0
- package/dist/components/BaseTooltip/BaseTooltip.utils.d.ts +4 -2
- package/dist/components/BaseTooltip/BaseTooltip.utils.js +23 -11
- package/dist/components/BaseTooltip/hooks/useCustomFloating.d.ts +30 -0
- package/dist/components/BaseTooltip/hooks/useCustomFloating.js +72 -0
- package/dist/components/Breadcrumb/Breadcrumb.tokens.d.ts +1 -1
- package/dist/components/Button/Button.styles.d.ts +32 -12
- package/dist/components/Button/Button.tokens.d.ts +2 -2
- package/dist/components/Dropdown/Dropdown.tokens.d.ts +1 -1
- package/dist/components/Dropdown/components/Item/Item.style.d.ts +1 -1
- package/dist/components/Dropdown/components/Menu/Menu.styles.d.ts +1 -1
- package/dist/components/Empty/Empty.d.ts +3 -0
- package/dist/components/Empty/Empty.js +47 -0
- package/dist/components/Empty/Empty.styles.d.ts +34 -0
- package/dist/components/Empty/Empty.styles.js +34 -0
- package/dist/components/Empty/Empty.tokens.d.ts +9 -0
- package/dist/components/Empty/Empty.tokens.js +10 -0
- package/dist/components/Empty/Empty.types.d.ts +15 -0
- package/dist/components/Empty/components/images/BookmarkImg.d.ts +2 -0
- package/dist/components/Empty/components/images/BookmarkImg.js +9 -0
- package/dist/components/Empty/components/images/DefaultImg.d.ts +2 -0
- package/dist/components/Empty/components/images/DefaultImg.js +9 -0
- package/dist/components/Empty/components/images/FilterImg.d.ts +2 -0
- package/dist/components/Empty/components/images/FilterImg.js +9 -0
- package/dist/components/Empty/components/images/LockedImg.d.ts +2 -0
- package/dist/components/Empty/components/images/LockedImg.js +9 -0
- package/dist/components/Empty/components/images/SearchImg.d.ts +2 -0
- package/dist/components/Empty/components/images/SearchImg.js +9 -0
- package/dist/components/Empty/components/images/TestingImg.d.ts +2 -0
- package/dist/components/Empty/components/images/TestingImg.js +9 -0
- package/dist/components/Empty/components/images/_404Img.d.ts +2 -0
- package/dist/components/Empty/components/images/_404Img.js +9 -0
- package/dist/components/Empty/components/images/index.d.ts +7 -0
- package/dist/components/Empty/index.d.ts +2 -0
- package/dist/components/InternalPicker/styles/DatePanel.styles.js +0 -1
- package/dist/components/InternalPicker/styles/Popup.styles.d.ts +1 -1
- package/dist/components/InternalPicker/styles/TimePanel.styles.d.ts +1 -1
- package/dist/components/InternalPicker/tokens.d.ts +1 -1
- package/dist/components/Popconfirm/components/PopconfirmFloatingElement/PopconfirmFloatingElement.styles.d.ts +1 -1
- package/dist/components/Popconfirm/components/PopconfirmFloatingElement/PopconfirmFloatingElement.styles.js +1 -2
- package/dist/components/Popover/component/PopoverFloatingElement/PopoverFloatingElement.styles.d.ts +1 -1
- package/dist/components/Popover/component/PopoverFloatingElement/PopoverFloatingElement.styles.js +1 -2
- package/dist/components/Progress/Progress.styles.d.ts +1 -1
- package/dist/components/Progress/Progress.tokens.d.ts +1 -1
- package/dist/components/Segmented/Segmented.d.ts +5 -0
- package/dist/components/Segmented/Segmented.js +41 -0
- package/dist/components/Segmented/Segmented.styles.d.ts +15 -0
- package/dist/components/Segmented/Segmented.styles.js +15 -0
- package/dist/components/Segmented/Segmented.tokens.d.ts +17 -0
- package/dist/components/Segmented/Segmented.tokens.js +19 -0
- package/dist/components/Segmented/Segmented.types.d.ts +20 -0
- package/dist/components/Segmented/Segmented.utils.d.ts +2 -0
- package/dist/components/Segmented/Segmented.utils.js +13 -0
- package/dist/components/Segmented/components/SegmentedItem/SegmentedItem.d.ts +2 -0
- package/dist/components/Segmented/components/SegmentedItem/SegmentedItem.js +36 -0
- package/dist/components/Segmented/components/SegmentedItem/SegmentedItem.styles.d.ts +47 -0
- package/dist/components/Segmented/components/SegmentedItem/SegmentedItem.styles.js +51 -0
- package/dist/components/Segmented/components/SegmentedItem/SegmentedItem.types.d.ts +6 -0
- package/dist/components/Segmented/index.d.ts +2 -0
- package/dist/components/Select/components/SelectOption/SelectOption.styles.d.ts +2 -2
- package/dist/components/TreeSelect/TreeSelect.tokens.d.ts +1 -1
- package/dist/components/TreeSelect/components/TreeSelectOption/TreeSelectOption.styles.d.ts +2 -2
- package/dist/components/Upload/Upload.tokens.d.ts +1 -1
- package/dist/components/Upload/components/UploadListItem/UploadListItem.styles.d.ts +3 -3
- package/dist/contexts/themeContext.d.ts +16 -6
- package/dist/hooks/useControlledState/index.d.ts +1 -0
- package/dist/hooks/useControlledState/useControlledState.d.ts +1 -0
- package/dist/hooks/useControlledState/useControlledState.js +16 -0
- package/dist/hooks/useFirstMountLayoutEffect/index.d.ts +1 -0
- package/dist/hooks/useFirstMountLayoutEffect/useFirstMountLayoutEffect.d.ts +2 -0
- package/dist/hooks/useFirstMountLayoutEffect/useFirstMountLayoutEffect.js +15 -0
- package/dist/hooks/useIsomorphicLayoutEffect/index.d.ts +1 -0
- package/dist/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts +2 -0
- package/dist/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js +5 -0
- package/dist/hooks/useTheme/useTheme.d.ts +16 -6
- package/dist/index.d.ts +2 -0
- package/dist/index.js +4 -0
- package/dist/themes/baseTokens/baseColorTokens/baseColorTokens.d.ts +5 -0
- package/dist/themes/baseTokens/baseColorTokens/colorGroups/thrushColor.d.ts +1 -0
- package/dist/themes/baseTokens/baseColorTokens/colorGroups/thrushColor.js +1 -0
- package/dist/themes/baseTokens/baseColorTokens/colorGroups/transparentBlackColors.d.ts +2 -0
- package/dist/themes/baseTokens/baseColorTokens/colorGroups/transparentBlackColors.js +2 -0
- package/dist/themes/baseTokens/baseColorTokens/colorGroups/transparentWhiteColors.d.ts +2 -0
- package/dist/themes/baseTokens/baseColorTokens/colorGroups/transparentWhiteColors.js +2 -0
- package/dist/themes/baseTokens/baseTypographyTokens/baseTypographyTokens.d.ts +4 -0
- package/dist/themes/baseTokens/baseTypographyTokens/baseTypographyTokens.js +4 -0
- package/dist/themes/semanticTokens/colorSemanticTokens/semanticBlocks/backgroundColorTokens.d.ts +6 -6
- package/dist/themes/semanticTokens/colorSemanticTokens/semanticBlocks/backgroundColorTokens.js +6 -6
- package/dist/themes/semanticTokens/colorSemanticTokens/semanticBlocks/primaryColorTokens.d.ts +1 -0
- package/dist/themes/semanticTokens/colorSemanticTokens/semanticBlocks/primaryColorTokens.js +1 -0
- package/dist/themes/semanticTokens/colorSemanticTokens/semanticColorTokens.d.ts +7 -6
- package/dist/themes/themes.d.ts +16 -6
- package/dist/themes/themes.utils.d.ts +32 -12
- package/package.json +1 -1
|
@@ -17,7 +17,7 @@ export declare const getSelectTokens: (theme: Theme) => {
|
|
|
17
17
|
selectOptionText: "#262626";
|
|
18
18
|
selectOptionTextSelected: "#0CB3B3";
|
|
19
19
|
selectOptionTextDisabled: "#8C8C8C";
|
|
20
|
-
selectOptionBgHover:
|
|
20
|
+
selectOptionBgHover: `rgba(${number}, ${number}, ${number}, 0.08)`;
|
|
21
21
|
selectPaddingVertical: 4;
|
|
22
22
|
selectPaddingHorizontal: 12;
|
|
23
23
|
selectPaddingHorizontalTag: 4;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsxs, jsx } from "@emotion/react/jsx-runtime";
|
|
2
|
-
import { memo
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { memo } from "react";
|
|
3
|
+
import { FloatingArrow } from "@floating-ui/react";
|
|
4
|
+
import { getArrowPlacementCorrection, Max_ZIndex, ARROW_WIDTH, ARROW_HEIGHT } from "./BaseTooltip.utils.js";
|
|
5
5
|
import { createPortal } from "react-dom";
|
|
6
6
|
import { useShowTooltipController } from "./hooks/useShowTooltipController.js";
|
|
7
7
|
import { baseTooltipReferenceWrapperStyle, getBaseTooltipFloatingWrapperStyle } from "./BaseTooltip.styles.js";
|
|
8
|
+
import { useCustomFloating } from "./hooks/useCustomFloating.js";
|
|
8
9
|
import { useTheme } from "../../hooks/useTheme/useTheme.js";
|
|
9
|
-
const floatingMiddleware = [offset()];
|
|
10
10
|
const BaseTooltip = memo(({
|
|
11
11
|
floatingElement,
|
|
12
12
|
arrowColor,
|
|
@@ -19,6 +19,7 @@ const BaseTooltip = memo(({
|
|
|
19
19
|
trigger = ["click"],
|
|
20
20
|
mouseEnterDelay = 0.1,
|
|
21
21
|
mouseLeaveDelay = 0.1,
|
|
22
|
+
align,
|
|
22
23
|
className,
|
|
23
24
|
onOpenChange,
|
|
24
25
|
children,
|
|
@@ -27,30 +28,13 @@ const BaseTooltip = memo(({
|
|
|
27
28
|
}) => {
|
|
28
29
|
var _a;
|
|
29
30
|
const theme = useTheme();
|
|
30
|
-
const [arrowRef, setArrowRef] = useState(null);
|
|
31
|
-
useEffect(() => {
|
|
32
|
-
if (autoAdjustOverflow) {
|
|
33
|
-
floatingMiddleware.push(flip());
|
|
34
|
-
}
|
|
35
|
-
}, [arrowRef, autoAdjustOverflow]);
|
|
36
|
-
useEffect(() => {
|
|
37
|
-
if (arrowRef && withArrow) {
|
|
38
|
-
floatingMiddleware.push(arrow({
|
|
39
|
-
element: arrowRef,
|
|
40
|
-
padding: ARROW_PADDING
|
|
41
|
-
}));
|
|
42
|
-
}
|
|
43
|
-
}, [arrowRef, withArrow]);
|
|
44
31
|
const {
|
|
45
32
|
refs,
|
|
46
33
|
floatingStyles,
|
|
47
34
|
context,
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
placement: convertBaseTooltipPlacement(placement),
|
|
52
|
-
middleware: floatingMiddleware
|
|
53
|
-
});
|
|
35
|
+
floatingPlacement,
|
|
36
|
+
setArrowRef
|
|
37
|
+
} = useCustomFloating(placement, autoAdjustOverflow, withArrow, align);
|
|
54
38
|
const {
|
|
55
39
|
isOpen,
|
|
56
40
|
handlePointerOver,
|
|
@@ -72,7 +56,7 @@ const BaseTooltip = memo(({
|
|
|
72
56
|
const arrowPlacementCorrection = getArrowPlacementCorrection(floatingPlacement, context);
|
|
73
57
|
const renderFloatingElement = () => {
|
|
74
58
|
var _a2;
|
|
75
|
-
return /* @__PURE__ */ jsxs("div", { ref: refs.setFloating, css: [getBaseTooltipFloatingWrapperStyle(floatingPlacement, withArrow), (_a2 = styles == null ? void 0 : styles.floatingWrapper) == null ? void 0 : _a2.call(styles, theme), process.env.NODE_ENV === "production" ? "" : ";label:renderFloatingElement;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
59
|
+
return /* @__PURE__ */ jsxs("div", { ref: refs.setFloating, css: [getBaseTooltipFloatingWrapperStyle(floatingPlacement, withArrow), (_a2 = styles == null ? void 0 : styles.floatingWrapper) == null ? void 0 : _a2.call(styles, theme), process.env.NODE_ENV === "production" ? "" : ";label:renderFloatingElement;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQmFzZVRvb2x0aXAvQmFzZVRvb2x0aXAudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdFVSIsImZpbGUiOiIvYnVpbGRzL2Zyb250ZW5kL2xpYnMvdWkta2l0L3NyYy9jb21wb25lbnRzL0Jhc2VUb29sdGlwL0Jhc2VUb29sdGlwLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRkMsIG1lbW8sIHR5cGUgUHJvcHNXaXRoQ2hpbGRyZW4gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgQmFzZVRvb2x0aXBQcm9wcywgQmFzZVRvb2x0aXBUcmlnZ2VyVHlwZSB9IGZyb20gXCIuL0Jhc2VUb29sdGlwLnR5cGVzXCI7XG5pbXBvcnQgeyBGbG9hdGluZ0Fycm93IH0gZnJvbSBcIkBmbG9hdGluZy11aS9yZWFjdFwiO1xuaW1wb3J0IHtcbiAgQVJST1dfSEVJR0hULFxuICBBUlJPV19XSURUSCxcbiAgZ2V0QXJyb3dQbGFjZW1lbnRDb3JyZWN0aW9uLFxuICBNYXhfWkluZGV4LFxufSBmcm9tIFwiLi9CYXNlVG9vbHRpcC51dGlsc1wiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgdXNlU2hvd1Rvb2x0aXBDb250cm9sbGVyIH0gZnJvbSBcIi4vaG9va3MvdXNlU2hvd1Rvb2x0aXBDb250cm9sbGVyXCI7XG5pbXBvcnQge1xuICBiYXNlVG9vbHRpcFJlZmVyZW5jZVdyYXBwZXJTdHlsZSxcbiAgZ2V0QmFzZVRvb2x0aXBGbG9hdGluZ1dyYXBwZXJTdHlsZSxcbn0gZnJvbSBcIi4vQmFzZVRvb2x0aXAuc3R5bGVzXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCJob29rcy91c2VUaGVtZVwiO1xuaW1wb3J0IHsgdXNlQ3VzdG9tRmxvYXRpbmcgfSBmcm9tIFwiLi9ob29rcy91c2VDdXN0b21GbG9hdGluZ1wiO1xuXG5leHBvcnQgY29uc3QgQmFzZVRvb2x0aXA6IEZDPFByb3BzV2l0aENoaWxkcmVuPEJhc2VUb29sdGlwUHJvcHM+PiA9IG1lbW8oXG4gICh7XG4gICAgZmxvYXRpbmdFbGVtZW50LFxuICAgIGFycm93Q29sb3IsXG4gICAgd2l0aEFycm93ID0gdHJ1ZSxcbiAgICBwbGFjZW1lbnQgPSBcInRvcFwiLFxuICAgIGF1dG9BZGp1c3RPdmVyZmxvdyA9IHRydWUsXG4gICAgZGVmYXVsdE9wZW4gPSBmYWxzZSxcbiAgICBvcGVuLFxuICAgIHpJbmRleCA9IE1heF9aSW5kZXgsXG4gICAgdHJpZ2dlciA9IFtcImNsaWNrXCIgYXMgQmFzZVRvb2x0aXBUcmlnZ2VyVHlwZV0sXG4gICAgbW91c2VFbnRlckRlbGF5ID0gMC4xLFxuICAgIG1vdXNlTGVhdmVEZWxheSA9IDAuMSxcbiAgICBhbGlnbixcbiAgICBjbGFzc05hbWUsXG4gICAgb25PcGVuQ2hhbmdlLFxuICAgIGNoaWxkcmVuLFxuICAgIHN0eWxlcyxcbiAgICBnZXRQb3B1cENvbnRhaW5lciA9ICgpID0+IGRvY3VtZW50LmJvZHksXG4gIH0pID0+IHtcbiAgICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG5cbiAgICBjb25zdCB7IHJlZnMsIGZsb2F0aW5nU3R5bGVzLCBjb250ZXh0LCBmbG9hdGluZ1BsYWNlbWVudCwgc2V0QXJyb3dSZWYgfSA9IHVzZUN1c3RvbUZsb2F0aW5nKFxuICAgICAgcGxhY2VtZW50LFxuICAgICAgYXV0b0FkanVzdE92ZXJmbG93LFxuICAgICAgd2l0aEFycm93LFxuICAgICAgYWxpZ25cbiAgICApO1xuXG4gICAgY29uc3Qge1xuICAgICAgaXNPcGVuLFxuICAgICAgaGFuZGxlUG9pbnRlck92ZXIsXG4gICAgICBoYW5kbGVQb2ludGVyT3V0LFxuICAgICAgaGFuZGxlRm9jdXMsXG4gICAgICBoYW5kbGVCbHVyLFxuICAgICAgaGFuZGxlQ2xpY2ssXG4gICAgICBoYW5kbGVDb250ZXh0TWVudSxcbiAgICAgIG1vdXNlVXBIYW5kbGUsXG4gICAgfSA9IHVzZVNob3dUb29sdGlwQ29udHJvbGxlcih7XG4gICAgICB0cmlnZ2VyLFxuICAgICAgZGVmYXVsdE9wZW4sXG4gICAgICBvcGVuLFxuICAgICAgbW91c2VFbnRlckRlbGF5LFxuICAgICAgbW91c2VMZWF2ZURlbGF5LFxuICAgICAgcmVmcyxcbiAgICAgIG9uT3BlbkNoYW5nZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGFycm93UGxhY2VtZW50Q29ycmVjdGlvbiA9IGdldEFycm93UGxhY2VtZW50Q29ycmVjdGlvbihmbG9hdGluZ1BsYWNlbWVudCwgY29udGV4dCk7XG5cbiAgICBjb25zdCByZW5kZXJGbG9hdGluZ0VsZW1lbnQgPSAoKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgcmVmPXtyZWZzLnNldEZsb2F0aW5nfVxuICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgZ2V0QmFzZVRvb2x0aXBGbG9hdGluZ1dyYXBwZXJTdHlsZShmbG9hdGluZ1BsYWNlbWVudCwgd2l0aEFycm93KSxcbiAgICAgICAgICAgIHN0eWxlcz8uZmxvYXRpbmdXcmFwcGVyPy4odGhlbWUpLFxuICAgICAgICAgIF19XG4gICAgICAgICAgc3R5bGU9e3sgLi4uZmxvYXRpbmdTdHlsZXMsIHpJbmRleCB9fVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICA+XG4gICAgICAgICAge2Zsb2F0aW5nRWxlbWVudH1cbiAgICAgICAgICB7d2l0aEFycm93ICYmIChcbiAgICAgICAgICAgIDxGbG9hdGluZ0Fycm93XG4gICAgICAgICAgICAgIHJlZj17c2V0QXJyb3dSZWZ9XG4gICAgICAgICAgICAgIGNvbnRleHQ9e2NvbnRleHR9XG4gICAgICAgICAgICAgIHdpZHRoPXtBUlJPV19XSURUSH1cbiAgICAgICAgICAgICAgaGVpZ2h0PXtBUlJPV19IRUlHSFR9XG4gICAgICAgICAgICAgIGZpbGw9e2Fycm93Q29sb3J9XG4gICAgICAgICAgICAgIHN0eWxlPXt7IC4uLmFycm93UGxhY2VtZW50Q29ycmVjdGlvbiB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIHJlZj17cmVmcy5zZXRSZWZlcmVuY2V9XG4gICAgICAgIGNzcz17W2Jhc2VUb29sdGlwUmVmZXJlbmNlV3JhcHBlclN0eWxlLCBzdHlsZXM/LnJlZmVyZW5jZVdyYXBwZXI/Lih0aGVtZSldfVxuICAgICAgICBvblBvaW50ZXJPdmVyPXtoYW5kbGVQb2ludGVyT3Zlcn1cbiAgICAgICAgb25Qb2ludGVyT3V0PXtoYW5kbGVQb2ludGVyT3V0fVxuICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgICAgb25Db250ZXh0TWVudT17aGFuZGxlQ29udGV4dE1lbnV9XG4gICAgICAgIG9uTW91c2VVcD17bW91c2VVcEhhbmRsZX1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuXG4gICAgICAgIHtpc09wZW4gJiYgY3JlYXRlUG9ydGFsKHJlbmRlckZsb2F0aW5nRWxlbWVudCgpLCBnZXRQb3B1cENvbnRhaW5lcigpKX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbik7XG4iXX0= */"], style: {
|
|
76
60
|
...floatingStyles,
|
|
77
61
|
zIndex
|
|
78
62
|
}, className, children: [
|
|
@@ -82,7 +66,7 @@ const BaseTooltip = memo(({
|
|
|
82
66
|
} })
|
|
83
67
|
] });
|
|
84
68
|
};
|
|
85
|
-
return /* @__PURE__ */ jsxs("div", { ref: refs.setReference, css: [baseTooltipReferenceWrapperStyle, (_a = styles == null ? void 0 : styles.referenceWrapper) == null ? void 0 : _a.call(styles, theme), process.env.NODE_ENV === "production" ? "" : ";label:BaseTooltip;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
69
|
+
return /* @__PURE__ */ jsxs("div", { ref: refs.setReference, css: [baseTooltipReferenceWrapperStyle, (_a = styles == null ? void 0 : styles.referenceWrapper) == null ? void 0 : _a.call(styles, theme), process.env.NODE_ENV === "production" ? "" : ";label:BaseTooltip;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQmFzZVRvb2x0aXAvQmFzZVRvb2x0aXAudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlHUSIsImZpbGUiOiIvYnVpbGRzL2Zyb250ZW5kL2xpYnMvdWkta2l0L3NyYy9jb21wb25lbnRzL0Jhc2VUb29sdGlwL0Jhc2VUb29sdGlwLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRkMsIG1lbW8sIHR5cGUgUHJvcHNXaXRoQ2hpbGRyZW4gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgQmFzZVRvb2x0aXBQcm9wcywgQmFzZVRvb2x0aXBUcmlnZ2VyVHlwZSB9IGZyb20gXCIuL0Jhc2VUb29sdGlwLnR5cGVzXCI7XG5pbXBvcnQgeyBGbG9hdGluZ0Fycm93IH0gZnJvbSBcIkBmbG9hdGluZy11aS9yZWFjdFwiO1xuaW1wb3J0IHtcbiAgQVJST1dfSEVJR0hULFxuICBBUlJPV19XSURUSCxcbiAgZ2V0QXJyb3dQbGFjZW1lbnRDb3JyZWN0aW9uLFxuICBNYXhfWkluZGV4LFxufSBmcm9tIFwiLi9CYXNlVG9vbHRpcC51dGlsc1wiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgdXNlU2hvd1Rvb2x0aXBDb250cm9sbGVyIH0gZnJvbSBcIi4vaG9va3MvdXNlU2hvd1Rvb2x0aXBDb250cm9sbGVyXCI7XG5pbXBvcnQge1xuICBiYXNlVG9vbHRpcFJlZmVyZW5jZVdyYXBwZXJTdHlsZSxcbiAgZ2V0QmFzZVRvb2x0aXBGbG9hdGluZ1dyYXBwZXJTdHlsZSxcbn0gZnJvbSBcIi4vQmFzZVRvb2x0aXAuc3R5bGVzXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCJob29rcy91c2VUaGVtZVwiO1xuaW1wb3J0IHsgdXNlQ3VzdG9tRmxvYXRpbmcgfSBmcm9tIFwiLi9ob29rcy91c2VDdXN0b21GbG9hdGluZ1wiO1xuXG5leHBvcnQgY29uc3QgQmFzZVRvb2x0aXA6IEZDPFByb3BzV2l0aENoaWxkcmVuPEJhc2VUb29sdGlwUHJvcHM+PiA9IG1lbW8oXG4gICh7XG4gICAgZmxvYXRpbmdFbGVtZW50LFxuICAgIGFycm93Q29sb3IsXG4gICAgd2l0aEFycm93ID0gdHJ1ZSxcbiAgICBwbGFjZW1lbnQgPSBcInRvcFwiLFxuICAgIGF1dG9BZGp1c3RPdmVyZmxvdyA9IHRydWUsXG4gICAgZGVmYXVsdE9wZW4gPSBmYWxzZSxcbiAgICBvcGVuLFxuICAgIHpJbmRleCA9IE1heF9aSW5kZXgsXG4gICAgdHJpZ2dlciA9IFtcImNsaWNrXCIgYXMgQmFzZVRvb2x0aXBUcmlnZ2VyVHlwZV0sXG4gICAgbW91c2VFbnRlckRlbGF5ID0gMC4xLFxuICAgIG1vdXNlTGVhdmVEZWxheSA9IDAuMSxcbiAgICBhbGlnbixcbiAgICBjbGFzc05hbWUsXG4gICAgb25PcGVuQ2hhbmdlLFxuICAgIGNoaWxkcmVuLFxuICAgIHN0eWxlcyxcbiAgICBnZXRQb3B1cENvbnRhaW5lciA9ICgpID0+IGRvY3VtZW50LmJvZHksXG4gIH0pID0+IHtcbiAgICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG5cbiAgICBjb25zdCB7IHJlZnMsIGZsb2F0aW5nU3R5bGVzLCBjb250ZXh0LCBmbG9hdGluZ1BsYWNlbWVudCwgc2V0QXJyb3dSZWYgfSA9IHVzZUN1c3RvbUZsb2F0aW5nKFxuICAgICAgcGxhY2VtZW50LFxuICAgICAgYXV0b0FkanVzdE92ZXJmbG93LFxuICAgICAgd2l0aEFycm93LFxuICAgICAgYWxpZ25cbiAgICApO1xuXG4gICAgY29uc3Qge1xuICAgICAgaXNPcGVuLFxuICAgICAgaGFuZGxlUG9pbnRlck92ZXIsXG4gICAgICBoYW5kbGVQb2ludGVyT3V0LFxuICAgICAgaGFuZGxlRm9jdXMsXG4gICAgICBoYW5kbGVCbHVyLFxuICAgICAgaGFuZGxlQ2xpY2ssXG4gICAgICBoYW5kbGVDb250ZXh0TWVudSxcbiAgICAgIG1vdXNlVXBIYW5kbGUsXG4gICAgfSA9IHVzZVNob3dUb29sdGlwQ29udHJvbGxlcih7XG4gICAgICB0cmlnZ2VyLFxuICAgICAgZGVmYXVsdE9wZW4sXG4gICAgICBvcGVuLFxuICAgICAgbW91c2VFbnRlckRlbGF5LFxuICAgICAgbW91c2VMZWF2ZURlbGF5LFxuICAgICAgcmVmcyxcbiAgICAgIG9uT3BlbkNoYW5nZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGFycm93UGxhY2VtZW50Q29ycmVjdGlvbiA9IGdldEFycm93UGxhY2VtZW50Q29ycmVjdGlvbihmbG9hdGluZ1BsYWNlbWVudCwgY29udGV4dCk7XG5cbiAgICBjb25zdCByZW5kZXJGbG9hdGluZ0VsZW1lbnQgPSAoKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgcmVmPXtyZWZzLnNldEZsb2F0aW5nfVxuICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgZ2V0QmFzZVRvb2x0aXBGbG9hdGluZ1dyYXBwZXJTdHlsZShmbG9hdGluZ1BsYWNlbWVudCwgd2l0aEFycm93KSxcbiAgICAgICAgICAgIHN0eWxlcz8uZmxvYXRpbmdXcmFwcGVyPy4odGhlbWUpLFxuICAgICAgICAgIF19XG4gICAgICAgICAgc3R5bGU9e3sgLi4uZmxvYXRpbmdTdHlsZXMsIHpJbmRleCB9fVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICA+XG4gICAgICAgICAge2Zsb2F0aW5nRWxlbWVudH1cbiAgICAgICAgICB7d2l0aEFycm93ICYmIChcbiAgICAgICAgICAgIDxGbG9hdGluZ0Fycm93XG4gICAgICAgICAgICAgIHJlZj17c2V0QXJyb3dSZWZ9XG4gICAgICAgICAgICAgIGNvbnRleHQ9e2NvbnRleHR9XG4gICAgICAgICAgICAgIHdpZHRoPXtBUlJPV19XSURUSH1cbiAgICAgICAgICAgICAgaGVpZ2h0PXtBUlJPV19IRUlHSFR9XG4gICAgICAgICAgICAgIGZpbGw9e2Fycm93Q29sb3J9XG4gICAgICAgICAgICAgIHN0eWxlPXt7IC4uLmFycm93UGxhY2VtZW50Q29ycmVjdGlvbiB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIHJlZj17cmVmcy5zZXRSZWZlcmVuY2V9XG4gICAgICAgIGNzcz17W2Jhc2VUb29sdGlwUmVmZXJlbmNlV3JhcHBlclN0eWxlLCBzdHlsZXM/LnJlZmVyZW5jZVdyYXBwZXI/Lih0aGVtZSldfVxuICAgICAgICBvblBvaW50ZXJPdmVyPXtoYW5kbGVQb2ludGVyT3Zlcn1cbiAgICAgICAgb25Qb2ludGVyT3V0PXtoYW5kbGVQb2ludGVyT3V0fVxuICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgICAgb25Db250ZXh0TWVudT17aGFuZGxlQ29udGV4dE1lbnV9XG4gICAgICAgIG9uTW91c2VVcD17bW91c2VVcEhhbmRsZX1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuXG4gICAgICAgIHtpc09wZW4gJiYgY3JlYXRlUG9ydGFsKHJlbmRlckZsb2F0aW5nRWxlbWVudCgpLCBnZXRQb3B1cENvbnRhaW5lcigpKX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbik7XG4iXX0= */"], onPointerOver: handlePointerOver, onPointerOut: handlePointerOut, onFocus: handleFocus, onBlur: handleBlur, onClick: handleClick, onContextMenu: handleContextMenu, onMouseUp: mouseUpHandle, children: [
|
|
86
70
|
children,
|
|
87
71
|
isOpen && createPortal(renderFloatingElement(), getPopupContainer())
|
|
88
72
|
] });
|
|
@@ -3,6 +3,15 @@ import { ReactNode } from 'react';
|
|
|
3
3
|
import { Theme } from 'themes';
|
|
4
4
|
export type BaseTooltipPlacementType = "top" | "left" | "right" | "bottom" | "topLeft" | "topRight" | "bottomLeft" | "bottomRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom";
|
|
5
5
|
export type BaseTooltipTriggerType = "hover" | "focus" | "click" | "contextMenu";
|
|
6
|
+
export type OffsetType = number | `${number}%`;
|
|
7
|
+
export interface BaseTooltipAlign {
|
|
8
|
+
offset?: OffsetType[];
|
|
9
|
+
targetOffset?: OffsetType[];
|
|
10
|
+
overflow?: {
|
|
11
|
+
adjustX?: boolean;
|
|
12
|
+
adjustY?: boolean;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
6
15
|
export interface BaseTooltipProps {
|
|
7
16
|
floatingElement: ReactNode;
|
|
8
17
|
arrowColor?: string;
|
|
@@ -16,6 +25,7 @@ export interface BaseTooltipProps {
|
|
|
16
25
|
open?: boolean;
|
|
17
26
|
zIndex?: number;
|
|
18
27
|
className?: string;
|
|
28
|
+
align?: BaseTooltipAlign;
|
|
19
29
|
styles?: {
|
|
20
30
|
floatingWrapper?: (theme: Theme) => Interpolation;
|
|
21
31
|
referenceWrapper?: (theme: Theme) => Interpolation;
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { FloatingContext, Placement } from '@floating-ui/react';
|
|
2
|
-
import { BaseTooltipPlacementType } from './BaseTooltip.types';
|
|
1
|
+
import { FloatingContext, Placement, Rect } from '@floating-ui/react';
|
|
2
|
+
import { BaseTooltipPlacementType, OffsetType } from './BaseTooltip.types';
|
|
3
3
|
export declare const ARROW_WIDTH = 8;
|
|
4
4
|
export declare const ARROW_HEIGHT = 4;
|
|
5
5
|
export declare const ARROW_PADDING = 6;
|
|
6
6
|
export declare const FLOATING_OFFSET_WITH_ARROW_HEIGHT: number;
|
|
7
7
|
export declare const Max_ZIndex = 2147483647;
|
|
8
|
+
export declare const singleSides: string[];
|
|
8
9
|
export declare const getArrowPlacementCorrection: (placement: Placement, context: FloatingContext) => {};
|
|
9
10
|
export declare const isTopSide: (placement: Placement) => boolean;
|
|
10
11
|
export declare const isBottomSide: (placement: Placement) => boolean;
|
|
11
12
|
export declare const isLeftSide: (placement: Placement) => boolean;
|
|
12
13
|
export declare const isRightSide: (placement: Placement) => boolean;
|
|
13
14
|
export declare const convertBaseTooltipPlacement: (placement: BaseTooltipPlacementType) => Placement;
|
|
15
|
+
export declare const convertOffsetValues: (rect: Rect) => (element: OffsetType, index: number) => number;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { isUndefined } from "lodash-es";
|
|
1
|
+
import { isUndefined, isNumber } from "lodash-es";
|
|
2
2
|
import { FLOATING_OFFSET } from "../../utils/consts.js";
|
|
3
3
|
const ARROW_WIDTH = 8;
|
|
4
4
|
const ARROW_HEIGHT = 4;
|
|
5
5
|
const ARROW_PADDING = 6;
|
|
6
6
|
const FLOATING_OFFSET_WITH_ARROW_HEIGHT = FLOATING_OFFSET + ARROW_HEIGHT;
|
|
7
7
|
const Max_ZIndex = 2147483647;
|
|
8
|
+
const singleSides = ["left", "right", "top", "bottom"];
|
|
8
9
|
const leftCorrectionValues = ["top", "bottom", "top-start", "bottom-start", "top-end", "bottom-end"];
|
|
9
|
-
const arrowCenterValues =
|
|
10
|
+
const arrowCenterValues = singleSides;
|
|
10
11
|
const arrowStartValues = ["left-start", "right-start", "top-start", "bottom-start"];
|
|
11
12
|
const getArrowPosition = (placement, start, center, end) => {
|
|
12
13
|
if (arrowStartValues.includes(placement)) {
|
|
@@ -30,6 +31,11 @@ const getArrowPlacementCorrection = (placement, context) => {
|
|
|
30
31
|
const start = ARROW_PADDING;
|
|
31
32
|
const end = floatingCorrectingSize - ARROW_PADDING - ARROW_WIDTH;
|
|
32
33
|
const wrapperPaddingCompensation = getWrapperPaddingCompensation(placement);
|
|
34
|
+
if (arrowCenterValues.includes(placement)) {
|
|
35
|
+
return {
|
|
36
|
+
...wrapperPaddingCompensation
|
|
37
|
+
};
|
|
38
|
+
}
|
|
33
39
|
if (isLeftCorrecting) {
|
|
34
40
|
return {
|
|
35
41
|
left: getArrowPosition(placement, start, center, end),
|
|
@@ -44,26 +50,22 @@ const getArrowPlacementCorrection = (placement, context) => {
|
|
|
44
50
|
const getWrapperPaddingCompensation = (placement) => {
|
|
45
51
|
if (isTopSide(placement)) {
|
|
46
52
|
return {
|
|
47
|
-
bottom: 0
|
|
48
|
-
top: void 0
|
|
53
|
+
bottom: 0
|
|
49
54
|
};
|
|
50
55
|
}
|
|
51
56
|
if (isBottomSide(placement)) {
|
|
52
57
|
return {
|
|
53
|
-
top: 0
|
|
54
|
-
bottom: void 0
|
|
58
|
+
top: 0
|
|
55
59
|
};
|
|
56
60
|
}
|
|
57
61
|
if (isLeftSide(placement)) {
|
|
58
62
|
return {
|
|
59
|
-
right: 0
|
|
60
|
-
left: void 0
|
|
63
|
+
right: 0
|
|
61
64
|
};
|
|
62
65
|
}
|
|
63
66
|
if (isRightSide(placement)) {
|
|
64
67
|
return {
|
|
65
|
-
left: 0
|
|
66
|
-
right: void 0
|
|
68
|
+
left: 0
|
|
67
69
|
};
|
|
68
70
|
}
|
|
69
71
|
};
|
|
@@ -88,6 +90,14 @@ const placementBaseTooltipDictionary = {
|
|
|
88
90
|
const convertBaseTooltipPlacement = (placement) => {
|
|
89
91
|
return placementBaseTooltipDictionary[placement];
|
|
90
92
|
};
|
|
93
|
+
const convertOffsetValues = (rect) => (element, index) => {
|
|
94
|
+
if (isNumber(element)) {
|
|
95
|
+
return element;
|
|
96
|
+
}
|
|
97
|
+
const percentValue = Number(element.slice(0, element.length - 1));
|
|
98
|
+
const elementSize = index === 0 ? rect.width : rect.height;
|
|
99
|
+
return elementSize / 100 * percentValue;
|
|
100
|
+
};
|
|
91
101
|
export {
|
|
92
102
|
ARROW_HEIGHT,
|
|
93
103
|
ARROW_PADDING,
|
|
@@ -95,9 +105,11 @@ export {
|
|
|
95
105
|
FLOATING_OFFSET_WITH_ARROW_HEIGHT,
|
|
96
106
|
Max_ZIndex,
|
|
97
107
|
convertBaseTooltipPlacement,
|
|
108
|
+
convertOffsetValues,
|
|
98
109
|
getArrowPlacementCorrection,
|
|
99
110
|
isBottomSide,
|
|
100
111
|
isLeftSide,
|
|
101
112
|
isRightSide,
|
|
102
|
-
isTopSide
|
|
113
|
+
isTopSide,
|
|
114
|
+
singleSides
|
|
103
115
|
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { BaseTooltipAlign, BaseTooltipPlacementType } from '../BaseTooltip.types';
|
|
2
|
+
export declare const useCustomFloating: (placement: BaseTooltipPlacementType, autoAdjustOverflow: boolean, withArrow: boolean, align: BaseTooltipAlign | undefined) => {
|
|
3
|
+
refs: {
|
|
4
|
+
reference: import('react').MutableRefObject<import('@floating-ui/react-dom').ReferenceType | null>;
|
|
5
|
+
floating: React.MutableRefObject<HTMLElement | null>;
|
|
6
|
+
setReference: (node: import('@floating-ui/react-dom').ReferenceType | null) => void;
|
|
7
|
+
setFloating: (node: HTMLElement | null) => void;
|
|
8
|
+
} & import('@floating-ui/react').ExtendedRefs<HTMLDivElement>;
|
|
9
|
+
floatingStyles: import('react').CSSProperties;
|
|
10
|
+
context: {
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
placement: import('@floating-ui/utils').Placement;
|
|
14
|
+
floatingStyles: React.CSSProperties;
|
|
15
|
+
strategy: import('@floating-ui/utils').Strategy;
|
|
16
|
+
middlewareData: import('@floating-ui/core').MiddlewareData;
|
|
17
|
+
isPositioned: boolean;
|
|
18
|
+
update: () => void;
|
|
19
|
+
open: boolean;
|
|
20
|
+
onOpenChange: (open: boolean, event?: Event, reason?: import('@floating-ui/react').OpenChangeReason) => void;
|
|
21
|
+
events: import('@floating-ui/react').FloatingEvents;
|
|
22
|
+
dataRef: React.MutableRefObject<import('@floating-ui/react').ContextData>;
|
|
23
|
+
nodeId: string | undefined;
|
|
24
|
+
floatingId: string | undefined;
|
|
25
|
+
refs: import('@floating-ui/react').ExtendedRefs<HTMLDivElement>;
|
|
26
|
+
elements: import('@floating-ui/react').ExtendedElements<HTMLDivElement>;
|
|
27
|
+
};
|
|
28
|
+
floatingPlacement: import('@floating-ui/utils').Placement;
|
|
29
|
+
setArrowRef: import('react').Dispatch<import('react').SetStateAction<SVGSVGElement | null>>;
|
|
30
|
+
};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { useState, useEffect } from "react";
|
|
2
|
+
import { singleSides, convertOffsetValues, ARROW_PADDING, convertBaseTooltipPlacement, isLeftSide, isRightSide } from "../BaseTooltip.utils.js";
|
|
3
|
+
import { flip, shift, offset, arrow, useFloating, autoUpdate } from "@floating-ui/react";
|
|
4
|
+
import { isUndefined } from "lodash-es";
|
|
5
|
+
const floatingMiddleware = [];
|
|
6
|
+
const useCustomFloating = (placement, autoAdjustOverflow, withArrow, align) => {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
const [arrowRef, setArrowRef] = useState(null);
|
|
9
|
+
const convertedPlacement = convertBaseTooltipPlacement(placement);
|
|
10
|
+
const isXMainAxis = isLeftSide(convertedPlacement) || isRightSide(convertedPlacement);
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
var _a2, _b2, _c, _d, _e, _f;
|
|
13
|
+
if (autoAdjustOverflow || ((_a2 = align == null ? void 0 : align.overflow) == null ? void 0 : _a2.adjustX) || ((_b2 = align == null ? void 0 : align.overflow) == null ? void 0 : _b2.adjustY)) {
|
|
14
|
+
floatingMiddleware[0] = flip({
|
|
15
|
+
mainAxis: isXMainAxis ? !!((_c = align == null ? void 0 : align.overflow) == null ? void 0 : _c.adjustX) : !!((_d = align == null ? void 0 : align.overflow) == null ? void 0 : _d.adjustY),
|
|
16
|
+
crossAxis: isXMainAxis ? !!((_e = align == null ? void 0 : align.overflow) == null ? void 0 : _e.adjustY) : !!((_f = align == null ? void 0 : align.overflow) == null ? void 0 : _f.adjustX)
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
}, [align, (_a = align == null ? void 0 : align.overflow) == null ? void 0 : _a.adjustX, (_b = align == null ? void 0 : align.overflow) == null ? void 0 : _b.adjustY, arrowRef, autoAdjustOverflow, isXMainAxis]);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
floatingMiddleware[1] = shift({
|
|
22
|
+
mainAxis: singleSides.includes(convertedPlacement)
|
|
23
|
+
});
|
|
24
|
+
}, [convertedPlacement]);
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
const offsetResult = offset(({
|
|
27
|
+
rects
|
|
28
|
+
}) => {
|
|
29
|
+
var _a2, _b2;
|
|
30
|
+
if (isUndefined(align == null ? void 0 : align.offset)) {
|
|
31
|
+
return {};
|
|
32
|
+
}
|
|
33
|
+
const convertedOffsetValues = (_a2 = align == null ? void 0 : align.offset) == null ? void 0 : _a2.map(convertOffsetValues(rects.floating));
|
|
34
|
+
const convertedTargetOffsetValues = (_b2 = align == null ? void 0 : align.targetOffset) == null ? void 0 : _b2.map(convertOffsetValues(rects.reference));
|
|
35
|
+
const mainAxis = isXMainAxis ? convertedOffsetValues[0] - ((convertedTargetOffsetValues == null ? void 0 : convertedTargetOffsetValues[0]) ?? 0) : convertedOffsetValues[1] - ((convertedTargetOffsetValues == null ? void 0 : convertedTargetOffsetValues[1]) ?? 0);
|
|
36
|
+
const crossAxis = isXMainAxis ? convertedOffsetValues[1] - ((convertedTargetOffsetValues == null ? void 0 : convertedTargetOffsetValues[1]) ?? 0) : convertedOffsetValues[0] - ((convertedTargetOffsetValues == null ? void 0 : convertedTargetOffsetValues[0]) ?? 0);
|
|
37
|
+
return {
|
|
38
|
+
mainAxis,
|
|
39
|
+
crossAxis
|
|
40
|
+
};
|
|
41
|
+
}, [convertedPlacement]);
|
|
42
|
+
floatingMiddleware[2] = offsetResult;
|
|
43
|
+
}, [align == null ? void 0 : align.offset, align == null ? void 0 : align.targetOffset, convertedPlacement, isXMainAxis]);
|
|
44
|
+
useEffect(() => {
|
|
45
|
+
if (arrowRef && withArrow) {
|
|
46
|
+
floatingMiddleware[3] = arrow({
|
|
47
|
+
element: arrowRef,
|
|
48
|
+
padding: ARROW_PADDING
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}, [arrowRef, withArrow]);
|
|
52
|
+
const {
|
|
53
|
+
refs,
|
|
54
|
+
floatingStyles,
|
|
55
|
+
context,
|
|
56
|
+
placement: floatingPlacement
|
|
57
|
+
} = useFloating({
|
|
58
|
+
whileElementsMounted: autoUpdate,
|
|
59
|
+
placement: convertBaseTooltipPlacement(placement),
|
|
60
|
+
middleware: floatingMiddleware
|
|
61
|
+
});
|
|
62
|
+
return {
|
|
63
|
+
refs,
|
|
64
|
+
floatingStyles,
|
|
65
|
+
context,
|
|
66
|
+
floatingPlacement,
|
|
67
|
+
setArrowRef
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
export {
|
|
71
|
+
useCustomFloating
|
|
72
|
+
};
|
|
@@ -2,7 +2,7 @@ import { Theme } from 'themes';
|
|
|
2
2
|
export declare const getBreadcrumbTokens: (theme: Theme) => {
|
|
3
3
|
breadcrumbItem: "#8C8C8C";
|
|
4
4
|
breadcrumbItemHover: "#595959";
|
|
5
|
-
breadcrumbItemBgHover: `rgba(${number}, ${number}, ${number}, 0.
|
|
5
|
+
breadcrumbItemBgHover: `rgba(${number}, ${number}, ${number}, 0.08)`;
|
|
6
6
|
breadcrumbLastItem: "#262626";
|
|
7
7
|
breadcrumbSeparator: "#BFBFBF";
|
|
8
8
|
breadcrumbItemHeight: number;
|
|
@@ -98,8 +98,8 @@ export declare const getButtonDefaultStyle: ({ variant, color, loading, disabled
|
|
|
98
98
|
bgComplimentary: "#FAFAFA";
|
|
99
99
|
bgSecondary: "#F0F0F0";
|
|
100
100
|
bgContainer: "#FFFFFF";
|
|
101
|
-
bgContainerHover:
|
|
102
|
-
bgContainerActive:
|
|
101
|
+
bgContainerHover: `rgba(${number}, ${number}, ${number}, 0.08)`;
|
|
102
|
+
bgContainerActive: `rgba(${number}, ${number}, ${number}, 0.12)`;
|
|
103
103
|
bgContainerDisabled: "#F0F0F0";
|
|
104
104
|
bgContainerDisabledContrast: "#D9D9D9";
|
|
105
105
|
bgContainerComplimentary: "#FAFAFA";
|
|
@@ -108,10 +108,10 @@ export declare const getButtonDefaultStyle: ({ variant, color, loading, disabled
|
|
|
108
108
|
bgContainerInverseActive: "#1F1F1F";
|
|
109
109
|
bgControl: "#BFBFBF";
|
|
110
110
|
bgControlHover: "#8C8C8C";
|
|
111
|
-
bgIconHover: `rgba(${number}, ${number}, ${number}, 0.
|
|
112
|
-
bgIconActive: `rgba(${number}, ${number}, ${number}, 0.
|
|
113
|
-
bgRail: `rgba(${number}, ${number}, ${number}, 0.
|
|
114
|
-
bgRailHover: `rgba(${number}, ${number}, ${number}, 0.
|
|
111
|
+
bgIconHover: `rgba(${number}, ${number}, ${number}, 0.08)`;
|
|
112
|
+
bgIconActive: `rgba(${number}, ${number}, ${number}, 0.12)`;
|
|
113
|
+
bgRail: `rgba(${number}, ${number}, ${number}, 0.08)`;
|
|
114
|
+
bgRailHover: `rgba(${number}, ${number}, ${number}, 0.12)`;
|
|
115
115
|
bgFloat: "#FFFFFF";
|
|
116
116
|
bgFloatContrast: "#262626";
|
|
117
117
|
bgMask: `rgba(${number}, ${number}, ${number}, 0.3)`;
|
|
@@ -134,27 +134,32 @@ export declare const getButtonDefaultStyle: ({ variant, color, loading, disabled
|
|
|
134
134
|
primaryHover: "#50CCC4";
|
|
135
135
|
primaryActive: "#03888C";
|
|
136
136
|
primaryBg: "#E1FAF6";
|
|
137
|
+
primaryBgHover: "#C3F4ED";
|
|
137
138
|
primaryBorder: "#77D9CF";
|
|
138
139
|
primaryHoverInverse: "#E1FAF6";
|
|
139
140
|
primaryActiveInverse: "#A3E6DD";
|
|
140
141
|
typography: {
|
|
141
142
|
readonly header1: {
|
|
142
143
|
readonly fontFamily: "Roboto";
|
|
144
|
+
readonly fontWeight: 500;
|
|
143
145
|
readonly fontSize: 24;
|
|
144
146
|
readonly lineHeight: "32px";
|
|
145
147
|
};
|
|
146
148
|
readonly header2: {
|
|
147
149
|
readonly fontFamily: "Roboto";
|
|
150
|
+
readonly fontWeight: 500;
|
|
148
151
|
readonly fontSize: 16;
|
|
149
152
|
readonly lineHeight: "24px";
|
|
150
153
|
};
|
|
151
154
|
readonly subheader1: {
|
|
152
155
|
readonly fontFamily: "Roboto";
|
|
156
|
+
readonly fontWeight: 500;
|
|
153
157
|
readonly fontSize: 14;
|
|
154
158
|
readonly lineHeight: "20px";
|
|
155
159
|
};
|
|
156
160
|
readonly subheader2: {
|
|
157
161
|
readonly fontFamily: "Roboto";
|
|
162
|
+
readonly fontWeight: 500;
|
|
158
163
|
readonly fontSize: 12;
|
|
159
164
|
readonly lineHeight: "20px";
|
|
160
165
|
};
|
|
@@ -316,6 +321,7 @@ export declare const getButtonDefaultStyle: ({ variant, color, loading, disabled
|
|
|
316
321
|
thrush40: "#50CCC4";
|
|
317
322
|
thrush30: "#77D9CF";
|
|
318
323
|
thrush20: "#A3E6DD";
|
|
324
|
+
thrush15: "#C3F4ED";
|
|
319
325
|
thrush10: "#E1FAF6";
|
|
320
326
|
transparentWhite90: `rgba(${number}, ${number}, ${number}, 0.9)`;
|
|
321
327
|
transparentWhite80: `rgba(${number}, ${number}, ${number}, 0.8)`;
|
|
@@ -325,7 +331,9 @@ export declare const getButtonDefaultStyle: ({ variant, color, loading, disabled
|
|
|
325
331
|
transparentWhite40: `rgba(${number}, ${number}, ${number}, 0.4)`;
|
|
326
332
|
transparentWhite30: `rgba(${number}, ${number}, ${number}, 0.3)`;
|
|
327
333
|
transparentWhite20: `rgba(${number}, ${number}, ${number}, 0.2)`;
|
|
334
|
+
transparentWhite12: `rgba(${number}, ${number}, ${number}, 0.12)`;
|
|
328
335
|
transparentWhite10: `rgba(${number}, ${number}, ${number}, 0.1)`;
|
|
336
|
+
transparentWhite8: `rgba(${number}, ${number}, ${number}, 0.08)`;
|
|
329
337
|
transparentWhite5: `rgba(${number}, ${number}, ${number}, 0.05)`;
|
|
330
338
|
transparentBlack90: `rgba(${number}, ${number}, ${number}, 0.9)`;
|
|
331
339
|
transparentBlack80: `rgba(${number}, ${number}, ${number}, 0.8)`;
|
|
@@ -335,7 +343,9 @@ export declare const getButtonDefaultStyle: ({ variant, color, loading, disabled
|
|
|
335
343
|
transparentBlack40: `rgba(${number}, ${number}, ${number}, 0.4)`;
|
|
336
344
|
transparentBlack30: `rgba(${number}, ${number}, ${number}, 0.3)`;
|
|
337
345
|
transparentBlack20: `rgba(${number}, ${number}, ${number}, 0.2)`;
|
|
346
|
+
transparentBlack12: `rgba(${number}, ${number}, ${number}, 0.12)`;
|
|
338
347
|
transparentBlack10: `rgba(${number}, ${number}, ${number}, 0.1)`;
|
|
348
|
+
transparentBlack8: `rgba(${number}, ${number}, ${number}, 0.08)`;
|
|
339
349
|
transparentBlack5: `rgba(${number}, ${number}, ${number}, 0.05)`;
|
|
340
350
|
neutral130: "#000000";
|
|
341
351
|
neutral120: "#141414";
|
|
@@ -694,8 +704,8 @@ export declare const getButtonDefaultStyle: ({ variant, color, loading, disabled
|
|
|
694
704
|
bgComplimentary: "#FAFAFA";
|
|
695
705
|
bgSecondary: "#F0F0F0";
|
|
696
706
|
bgContainer: "#FFFFFF";
|
|
697
|
-
bgContainerHover:
|
|
698
|
-
bgContainerActive:
|
|
707
|
+
bgContainerHover: `rgba(${number}, ${number}, ${number}, 0.08)`;
|
|
708
|
+
bgContainerActive: `rgba(${number}, ${number}, ${number}, 0.12)`;
|
|
699
709
|
bgContainerDisabled: "#F0F0F0";
|
|
700
710
|
bgContainerDisabledContrast: "#D9D9D9";
|
|
701
711
|
bgContainerComplimentary: "#FAFAFA";
|
|
@@ -704,10 +714,10 @@ export declare const getButtonDefaultStyle: ({ variant, color, loading, disabled
|
|
|
704
714
|
bgContainerInverseActive: "#1F1F1F";
|
|
705
715
|
bgControl: "#BFBFBF";
|
|
706
716
|
bgControlHover: "#8C8C8C";
|
|
707
|
-
bgIconHover: `rgba(${number}, ${number}, ${number}, 0.
|
|
708
|
-
bgIconActive: `rgba(${number}, ${number}, ${number}, 0.
|
|
709
|
-
bgRail: `rgba(${number}, ${number}, ${number}, 0.
|
|
710
|
-
bgRailHover: `rgba(${number}, ${number}, ${number}, 0.
|
|
717
|
+
bgIconHover: `rgba(${number}, ${number}, ${number}, 0.08)`;
|
|
718
|
+
bgIconActive: `rgba(${number}, ${number}, ${number}, 0.12)`;
|
|
719
|
+
bgRail: `rgba(${number}, ${number}, ${number}, 0.08)`;
|
|
720
|
+
bgRailHover: `rgba(${number}, ${number}, ${number}, 0.12)`;
|
|
711
721
|
bgFloat: "#FFFFFF";
|
|
712
722
|
bgFloatContrast: "#262626";
|
|
713
723
|
bgMask: `rgba(${number}, ${number}, ${number}, 0.3)`;
|
|
@@ -730,27 +740,32 @@ export declare const getButtonDefaultStyle: ({ variant, color, loading, disabled
|
|
|
730
740
|
primaryHover: "#50CCC4";
|
|
731
741
|
primaryActive: "#03888C";
|
|
732
742
|
primaryBg: "#E1FAF6";
|
|
743
|
+
primaryBgHover: "#C3F4ED";
|
|
733
744
|
primaryBorder: "#77D9CF";
|
|
734
745
|
primaryHoverInverse: "#E1FAF6";
|
|
735
746
|
primaryActiveInverse: "#A3E6DD";
|
|
736
747
|
typography: {
|
|
737
748
|
readonly header1: {
|
|
738
749
|
readonly fontFamily: "Roboto";
|
|
750
|
+
readonly fontWeight: 500;
|
|
739
751
|
readonly fontSize: 24;
|
|
740
752
|
readonly lineHeight: "32px";
|
|
741
753
|
};
|
|
742
754
|
readonly header2: {
|
|
743
755
|
readonly fontFamily: "Roboto";
|
|
756
|
+
readonly fontWeight: 500;
|
|
744
757
|
readonly fontSize: 16;
|
|
745
758
|
readonly lineHeight: "24px";
|
|
746
759
|
};
|
|
747
760
|
readonly subheader1: {
|
|
748
761
|
readonly fontFamily: "Roboto";
|
|
762
|
+
readonly fontWeight: 500;
|
|
749
763
|
readonly fontSize: 14;
|
|
750
764
|
readonly lineHeight: "20px";
|
|
751
765
|
};
|
|
752
766
|
readonly subheader2: {
|
|
753
767
|
readonly fontFamily: "Roboto";
|
|
768
|
+
readonly fontWeight: 500;
|
|
754
769
|
readonly fontSize: 12;
|
|
755
770
|
readonly lineHeight: "20px";
|
|
756
771
|
};
|
|
@@ -912,6 +927,7 @@ export declare const getButtonDefaultStyle: ({ variant, color, loading, disabled
|
|
|
912
927
|
thrush40: "#50CCC4";
|
|
913
928
|
thrush30: "#77D9CF";
|
|
914
929
|
thrush20: "#A3E6DD";
|
|
930
|
+
thrush15: "#C3F4ED";
|
|
915
931
|
thrush10: "#E1FAF6";
|
|
916
932
|
transparentWhite90: `rgba(${number}, ${number}, ${number}, 0.9)`;
|
|
917
933
|
transparentWhite80: `rgba(${number}, ${number}, ${number}, 0.8)`;
|
|
@@ -921,7 +937,9 @@ export declare const getButtonDefaultStyle: ({ variant, color, loading, disabled
|
|
|
921
937
|
transparentWhite40: `rgba(${number}, ${number}, ${number}, 0.4)`;
|
|
922
938
|
transparentWhite30: `rgba(${number}, ${number}, ${number}, 0.3)`;
|
|
923
939
|
transparentWhite20: `rgba(${number}, ${number}, ${number}, 0.2)`;
|
|
940
|
+
transparentWhite12: `rgba(${number}, ${number}, ${number}, 0.12)`;
|
|
924
941
|
transparentWhite10: `rgba(${number}, ${number}, ${number}, 0.1)`;
|
|
942
|
+
transparentWhite8: `rgba(${number}, ${number}, ${number}, 0.08)`;
|
|
925
943
|
transparentWhite5: `rgba(${number}, ${number}, ${number}, 0.05)`;
|
|
926
944
|
transparentBlack90: `rgba(${number}, ${number}, ${number}, 0.9)`;
|
|
927
945
|
transparentBlack80: `rgba(${number}, ${number}, ${number}, 0.8)`;
|
|
@@ -931,7 +949,9 @@ export declare const getButtonDefaultStyle: ({ variant, color, loading, disabled
|
|
|
931
949
|
transparentBlack40: `rgba(${number}, ${number}, ${number}, 0.4)`;
|
|
932
950
|
transparentBlack30: `rgba(${number}, ${number}, ${number}, 0.3)`;
|
|
933
951
|
transparentBlack20: `rgba(${number}, ${number}, ${number}, 0.2)`;
|
|
952
|
+
transparentBlack12: `rgba(${number}, ${number}, ${number}, 0.12)`;
|
|
934
953
|
transparentBlack10: `rgba(${number}, ${number}, ${number}, 0.1)`;
|
|
954
|
+
transparentBlack8: `rgba(${number}, ${number}, ${number}, 0.08)`;
|
|
935
955
|
transparentBlack5: `rgba(${number}, ${number}, ${number}, 0.05)`;
|
|
936
956
|
neutral130: "#000000";
|
|
937
957
|
neutral120: "#141414";
|
|
@@ -13,8 +13,8 @@ export declare const getButtonTokens: (theme: Theme) => {
|
|
|
13
13
|
buttonSolidDefaultBgHover: "#434343";
|
|
14
14
|
buttonSolidDefaultBgActive: "#1F1F1F";
|
|
15
15
|
buttonOutlinedBg: "#FFFFFF";
|
|
16
|
-
buttonTextDefaultBgHover:
|
|
17
|
-
buttonTextDefaultBgActive:
|
|
16
|
+
buttonTextDefaultBgHover: `rgba(${number}, ${number}, ${number}, 0.08)`;
|
|
17
|
+
buttonTextDefaultBgActive: `rgba(${number}, ${number}, ${number}, 0.12)`;
|
|
18
18
|
buttonTextPrimaryBgHover: "#E1FAF6";
|
|
19
19
|
buttonTextPrimaryBgActive: "#A3E6DD";
|
|
20
20
|
buttonTextDangerBgHover: "#FFF1F0";
|
|
@@ -5,7 +5,7 @@ export declare const getDropdownTokens: (theme: Theme) => {
|
|
|
5
5
|
dropdownItemTextDisabled: "#8C8C8C";
|
|
6
6
|
dropdownItemTextExtra: "#8C8C8C";
|
|
7
7
|
dropdownItemTextTitle: "#8C8C8C";
|
|
8
|
-
dropdownItemBgHover:
|
|
8
|
+
dropdownItemBgHover: `rgba(${number}, ${number}, ${number}, 0.08)`;
|
|
9
9
|
dropdownItemDivider: "#E5E5E5";
|
|
10
10
|
dropdownItemPaddingVertical: 4;
|
|
11
11
|
dropdownItemPaddingHorizontal: 8;
|
|
@@ -11,7 +11,7 @@ export declare const getItemDefaultStyle: (disabled: boolean, selected: boolean,
|
|
|
11
11
|
readonly boxSizing: "border-box";
|
|
12
12
|
readonly cursor: "default" | "pointer";
|
|
13
13
|
readonly ":hover": {
|
|
14
|
-
readonly background:
|
|
14
|
+
readonly background: `rgba(${number}, ${number}, ${number}, 0.08)` | "unset";
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
17
|
content: (theme: Theme) => {
|
|
@@ -22,7 +22,7 @@ export declare const getMenuDefaultStyle: (maxHeight: number, minWidth: number)
|
|
|
22
22
|
readonly padding: "4px 8px";
|
|
23
23
|
readonly cursor: "pointer";
|
|
24
24
|
readonly ":hover": {
|
|
25
|
-
readonly background:
|
|
25
|
+
readonly background: `rgba(${number}, ${number}, ${number}, 0.08)`;
|
|
26
26
|
};
|
|
27
27
|
};
|
|
28
28
|
backIcon: (theme: Theme) => {
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx, jsxs } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { memo } from "react";
|
|
3
|
+
import { getEmptyTokens } from "./Empty.tokens.js";
|
|
4
|
+
import { emptyStyle, imageWrapperStyle, titleStyle, captionStyle, footerStyle } from "./Empty.styles.js";
|
|
5
|
+
import { isString } from "lodash-es";
|
|
6
|
+
import { emptyString } from "../../utils/const/index.js";
|
|
7
|
+
import { DefaultImg } from "./components/images/DefaultImg.js";
|
|
8
|
+
import { FilterImg } from "./components/images/FilterImg.js";
|
|
9
|
+
import { SearchImg } from "./components/images/SearchImg.js";
|
|
10
|
+
import { LockedImg } from "./components/images/LockedImg.js";
|
|
11
|
+
import { BookmarkImg } from "./components/images/BookmarkImg.js";
|
|
12
|
+
import { TestingImg } from "./components/images/TestingImg.js";
|
|
13
|
+
import { _404Img } from "./components/images/_404Img.js";
|
|
14
|
+
import { useTheme } from "../../hooks/useTheme/useTheme.js";
|
|
15
|
+
const EmptyComponent = (props) => {
|
|
16
|
+
const {
|
|
17
|
+
title,
|
|
18
|
+
caption,
|
|
19
|
+
image: imageProp = Empty.DEFAULT,
|
|
20
|
+
children
|
|
21
|
+
} = props;
|
|
22
|
+
const theme = useTheme();
|
|
23
|
+
const emptyTokens = getEmptyTokens(theme);
|
|
24
|
+
const image = (() => {
|
|
25
|
+
if (!isString(imageProp)) {
|
|
26
|
+
return imageProp;
|
|
27
|
+
}
|
|
28
|
+
return /* @__PURE__ */ jsx("img", { src: imageProp, alt: isString(title) && title || isString(caption) && caption || emptyString });
|
|
29
|
+
})();
|
|
30
|
+
return /* @__PURE__ */ jsxs("div", { css: emptyStyle(emptyTokens), children: [
|
|
31
|
+
/* @__PURE__ */ jsx("div", { css: imageWrapperStyle(theme), children: image }),
|
|
32
|
+
title && /* @__PURE__ */ jsx("div", { css: titleStyle(emptyTokens)(theme), children: title }),
|
|
33
|
+
caption && /* @__PURE__ */ jsx("div", { css: captionStyle(emptyTokens)(theme), children: caption }),
|
|
34
|
+
children && /* @__PURE__ */ jsx("div", { css: footerStyle(emptyTokens), children })
|
|
35
|
+
] });
|
|
36
|
+
};
|
|
37
|
+
const Empty = memo(EmptyComponent);
|
|
38
|
+
Empty.DEFAULT = /* @__PURE__ */ jsx(DefaultImg, {});
|
|
39
|
+
Empty.FILTER = /* @__PURE__ */ jsx(FilterImg, {});
|
|
40
|
+
Empty.SEARCH = /* @__PURE__ */ jsx(SearchImg, {});
|
|
41
|
+
Empty.LOCKED = /* @__PURE__ */ jsx(LockedImg, {});
|
|
42
|
+
Empty.BOOKMARK = /* @__PURE__ */ jsx(BookmarkImg, {});
|
|
43
|
+
Empty.TESTING = /* @__PURE__ */ jsx(TestingImg, {});
|
|
44
|
+
Empty[404] = /* @__PURE__ */ jsx(_404Img, {});
|
|
45
|
+
export {
|
|
46
|
+
Empty
|
|
47
|
+
};
|