@infomaximum/ui-kit 0.17.0 → 0.17.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/components/BaseTooltip/BaseTooltip.js +19 -5
  2. package/dist/components/BaseTooltip/BaseTooltip.types.d.ts +1 -0
  3. package/dist/components/BaseTooltip/BaseTooltip.utils.d.ts +3 -1
  4. package/dist/components/BaseTooltip/BaseTooltip.utils.js +32 -2
  5. package/dist/components/BaseTooltip/hooks/useCustomFloating.js +5 -4
  6. package/dist/components/BaseTooltip/hooks/useShowTooltipController.d.ts +2 -1
  7. package/dist/components/BaseTooltip/hooks/useShowTooltipController.js +56 -42
  8. package/dist/components/Dropdown/Dropdown.js +14 -8
  9. package/dist/components/Dropdown/Dropdown.types.d.ts +56 -19
  10. package/dist/components/Dropdown/Dropdown.utils.js +6 -2
  11. package/dist/components/Dropdown/components/Divider/Divider.d.ts +2 -1
  12. package/dist/components/Dropdown/components/Divider/Divider.js +5 -2
  13. package/dist/components/Dropdown/components/Divider/Divider.types.d.ts +3 -0
  14. package/dist/components/Dropdown/components/Group/Group.js +9 -6
  15. package/dist/components/Dropdown/components/Group/Group.types.d.ts +7 -3
  16. package/dist/components/Dropdown/components/Item/Item.js +17 -11
  17. package/dist/components/Dropdown/components/Item/Item.types.d.ts +1 -1
  18. package/dist/components/Dropdown/components/Menu/Menu.js +37 -13
  19. package/dist/components/Dropdown/components/Menu/Menu.styles.d.ts +1 -0
  20. package/dist/components/Dropdown/components/Menu/Menu.styles.js +2 -1
  21. package/dist/components/Dropdown/components/Menu/Menu.types.d.ts +0 -1
  22. package/dist/components/Dropdown/components/SubMenu/SubMenu.js +13 -6
  23. package/dist/components/Dropdown/components/SubMenu/SubMenu.types.d.ts +2 -2
  24. package/dist/components/Dropdown/components/SubMenu/SubMenu.utils.d.ts +2 -2
  25. package/dist/components/Dropdown/contexts/dropdownContext.d.ts +13 -10
  26. package/dist/components/Dropdown/hooks/useSelectedKeysController.d.ts +20 -17
  27. package/dist/components/Dropdown/hooks/useSelectedKeysController.js +7 -6
  28. package/dist/components/Dropdown/hooks/useSubMenusController.d.ts +5 -4
  29. package/dist/components/Dropdown/index.d.ts +2 -1
  30. package/dist/components/Empty/components/images/BookmarkImg.js +8 -4
  31. package/dist/components/Empty/components/images/DefaultImg.js +8 -4
  32. package/dist/components/Empty/components/images/FilterImg.js +8 -4
  33. package/dist/components/Empty/components/images/LockedImg.js +8 -4
  34. package/dist/components/Empty/components/images/SearchImg.js +8 -4
  35. package/dist/components/Empty/components/images/TestingImg.js +8 -4
  36. package/dist/components/Empty/components/images/_404Img.js +8 -4
  37. package/dist/components/Spin/Spin.js +19 -32
  38. package/dist/components/Table/Table.js +23 -17
  39. package/dist/components/Table/Table.types.d.ts +4 -1
  40. package/dist/components/Table/components/Body/Body.js +18 -9
  41. package/dist/components/Table/components/Body/Body.types.d.ts +1 -0
  42. package/dist/components/Table/components/Body/components/BodyCell/BodyCell.js +22 -16
  43. package/dist/components/Table/components/Body/components/MeasureCell/MeasureCell.js +2 -1
  44. package/dist/components/Table/components/Body/components/MeasureRow/MeasureRow.js +24 -18
  45. package/dist/components/Table/components/Body/components/MeasureRow/MeasureRow.utils.d.ts +1 -0
  46. package/dist/components/Table/components/Body/components/MeasureRow/MeasureRow.utils.js +3 -1
  47. package/dist/components/Table/components/Cell/Cell.d.ts +1 -2
  48. package/dist/components/Table/components/Cell/Cell.js +4 -3
  49. package/dist/components/Table/components/Cell/Cell.styles.d.ts +6 -0
  50. package/dist/components/Table/components/Cell/Cell.styles.js +6 -0
  51. package/dist/components/Table/components/EmptyDataRow/EmptyDataRow.styles.d.ts +1 -0
  52. package/dist/components/Table/components/EmptyDataRow/EmptyDataRow.styles.js +1 -0
  53. package/dist/components/Table/components/Footer/FooterWrapper.d.ts +3 -0
  54. package/dist/components/Table/components/Footer/FooterWrapper.js +36 -0
  55. package/dist/components/Table/components/Footer/FooterWrapper.types.d.ts +5 -0
  56. package/dist/components/Table/features/tableRowSelection/components/CheckboxCellContentWrapper/CheckboxCellContentWrapper.js +3 -2
  57. package/dist/components/Table/features/tableRowSelection/components/RadioCellContentWrapper/RadioCellContentWrapper.js +3 -2
  58. package/dist/components/Table/features/tableRowSelection/hooks/useTransformColumns/useTransformColumns.js +51 -40
  59. package/dist/components/Table/features/tableRowSelection/types.d.ts +3 -2
  60. package/dist/components/Table/features/tableStaticContext/contexts/tableStaticContext/TableStaticContext.d.ts +1 -0
  61. package/dist/components/Table/features/tableStaticContext/contexts/tableStaticContext/TableStaticContext.js +2 -1
  62. package/dist/components/Table/features/tableStaticContext/contexts/tableStaticContext/TableStaticContext.types.d.ts +2 -0
  63. package/dist/components/Table/features/tableStaticContext/hocs/withTableStaticContext.js +6 -1
  64. package/dist/components/Table/hooks/useBodyCellRender/useBodyCellRender.js +5 -2
  65. package/dist/components/Table/hooks/useCellFixedInfo/useCellFixedInfo.js +20 -22
  66. package/dist/components/Table/hooks/useCellFixedInfo/useCellFixedInfo.styles.d.ts +4 -2
  67. package/dist/components/Table/hooks/useCellFixedInfo/useCellFixedInfo.styles.js +4 -3
  68. package/dist/components/Table/hooks/useCellFixedInfo/useCellFixedInfo.utils.d.ts +12 -1
  69. package/dist/components/Table/hooks/useCellFixedInfo/useCellFixedInfo.utils.js +43 -1
  70. package/dist/components/Table/hooks/useCellHover/useCellHover.d.ts +0 -4
  71. package/dist/components/Table/hooks/useCellHover/useCellHover.js +2 -4
  72. package/dist/components/Table/hooks/useTableVisualParamsChange/useTableVisualParamsChange.js +8 -4
  73. package/dist/components/Tabs/Tabs.js +1 -1
  74. package/dist/components/Tabs/Tabs.types.d.ts +5 -4
  75. package/dist/components/Tabs/Tabs.utils.d.ts +3 -2
  76. package/dist/components/Tabs/components/TabBar/TabBar.types.d.ts +3 -2
  77. package/dist/components/Tabs/components/TabItem/TabItem.types.d.ts +8 -7
  78. package/dist/components/Tabs/hooks/useMoreTabsController.d.ts +5 -5
  79. package/dist/components/Tabs/hooks/useTabsDndController.d.ts +2 -1
  80. package/dist/index.d.ts +2 -2
  81. package/dist/index.js +5 -0
  82. package/dist/utils/eventBus/eventBus.d.ts +2 -1
  83. package/dist/utils/eventBus/eventBus.js +3 -0
  84. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import { jsxs, Fragment, jsx } from "@emotion/react/jsx-runtime";
2
2
  import React, { memo, useMemo } from "react";
3
3
  import { FloatingArrow } from "@floating-ui/react";
4
- import { getArrowPlacementCorrection, Max_ZIndex, ARROW_WIDTH, ARROW_HEIGHT } from "./BaseTooltip.utils.js";
4
+ import { getArrowPlacementCorrection, Max_ZIndex, withRef, 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";
@@ -24,12 +24,13 @@ const BaseTooltip = memo(({
24
24
  align,
25
25
  transform = true,
26
26
  className,
27
+ withoutWrapper,
27
28
  onOpenChange,
28
29
  children,
29
30
  styles,
30
- withoutWrapper,
31
31
  showInCursorPosition = false,
32
32
  getPopupContainer = () => document.body,
33
+ onContextMenu,
33
34
  getTargetDOMNode
34
35
  }) => {
35
36
  var _a;
@@ -68,6 +69,7 @@ const BaseTooltip = memo(({
68
69
  placement: floatingPlacement,
69
70
  refs,
70
71
  onOpenChange,
72
+ onContextMenu,
71
73
  arrowRef
72
74
  });
73
75
  const {
@@ -86,7 +88,7 @@ const BaseTooltip = memo(({
86
88
  const arrowPlacementCorrection = getArrowPlacementCorrection(floatingPlacement, refs, align);
87
89
  const renderFloatingElement = () => {
88
90
  var _a2;
89
- return /* @__PURE__ */ jsxs("div", { ref: refs.setFloating, css: [getBaseTooltipFloatingWrapperStyle(floatingPlacement, withArrow, isOpen), (_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQmFzZVRvb2x0aXAvQmFzZVRvb2x0aXAudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdHVSIsImZpbGUiOiIvYnVpbGRzL2Zyb250ZW5kL2xpYnMvdWkta2l0L3NyYy9jb21wb25lbnRzL0Jhc2VUb29sdGlwL0Jhc2VUb29sdGlwLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB0eXBlIEZDLCBtZW1vLCB0eXBlIFByb3BzV2l0aENoaWxkcmVuLCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IEJhc2VUb29sdGlwUHJvcHMsIEJhc2VUb29sdGlwVHJpZ2dlclR5cGUgfSBmcm9tIFwiLi9CYXNlVG9vbHRpcC50eXBlc1wiO1xuaW1wb3J0IHsgRmxvYXRpbmdBcnJvdyB9IGZyb20gXCJAZmxvYXRpbmctdWkvcmVhY3RcIjtcbmltcG9ydCB7XG4gIEFSUk9XX0hFSUdIVCxcbiAgQVJST1dfV0lEVEgsXG4gIGdldEFycm93UGxhY2VtZW50Q29ycmVjdGlvbixcbiAgTWF4X1pJbmRleCxcbn0gZnJvbSBcIi4vQmFzZVRvb2x0aXAudXRpbHNcIjtcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7IHVzZVNob3dUb29sdGlwQ29udHJvbGxlciB9IGZyb20gXCIuL2hvb2tzL3VzZVNob3dUb29sdGlwQ29udHJvbGxlclwiO1xuaW1wb3J0IHtcbiAgYmFzZVRvb2x0aXBSZWZlcmVuY2VXcmFwcGVyU3R5bGUsXG4gIGdldEJhc2VUb29sdGlwRmxvYXRpbmdXcmFwcGVyU3R5bGUsXG59IGZyb20gXCIuL0Jhc2VUb29sdGlwLnN0eWxlc1wiO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tIFwiaG9va3MvdXNlVGhlbWVcIjtcbmltcG9ydCB7IHVzZUN1c3RvbUZsb2F0aW5nIH0gZnJvbSBcIi4vaG9va3MvdXNlQ3VzdG9tRmxvYXRpbmdcIjtcbmltcG9ydCB7IHVzZVRhcmdldFJlZkNvbnRyb2xsZXIgfSBmcm9tIFwiLi9ob29rcy91c2VUYXJnZXRSZWZDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uLCBpc05pbCwgaXNOdWxsLCBpc1VuZGVmaW5lZCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuZXhwb3J0IGNvbnN0IEJhc2VUb29sdGlwOiBGQzxQcm9wc1dpdGhDaGlsZHJlbjxCYXNlVG9vbHRpcFByb3BzPj4gPSBtZW1vKFxuICAoe1xuICAgIGZsb2F0aW5nRWxlbWVudCxcbiAgICBhcnJvd0NvbG9yLFxuICAgIHdpdGhBcnJvdyA9IHRydWUsXG4gICAgcGxhY2VtZW50ID0gXCJ0b3BcIixcbiAgICBhdXRvQWRqdXN0T3ZlcmZsb3cgPSB0cnVlLFxuICAgIGRlZmF1bHRPcGVuID0gZmFsc2UsXG4gICAgb3BlbixcbiAgICB6SW5kZXggPSBNYXhfWkluZGV4LFxuICAgIHRyaWdnZXIgPSBbXCJjbGlja1wiIGFzIEJhc2VUb29sdGlwVHJpZ2dlclR5cGVdLFxuICAgIG1vdXNlRW50ZXJEZWxheSA9IDAuMSxcbiAgICBtb3VzZUxlYXZlRGVsYXkgPSAwLjEsXG4gICAgYWxpZ24sXG4gICAgdHJhbnNmb3JtID0gdHJ1ZSxcbiAgICBjbGFzc05hbWUsXG4gICAgb25PcGVuQ2hhbmdlLFxuICAgIGNoaWxkcmVuLFxuICAgIHN0eWxlcyxcbiAgICB3aXRob3V0V3JhcHBlcixcbiAgICBzaG93SW5DdXJzb3JQb3NpdGlvbiA9IGZhbHNlLFxuICAgIGdldFBvcHVwQ29udGFpbmVyID0gKCkgPT4gZG9jdW1lbnQuYm9keSxcbiAgICBnZXRUYXJnZXRET01Ob2RlLFxuICB9KSA9PiB7XG4gICAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICAgIGNvbnN0IGN1cnJlbnRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0gJiYgIXNob3dJbkN1cnNvclBvc2l0aW9uO1xuXG4gICAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcywgY29udGV4dCwgZmxvYXRpbmdQbGFjZW1lbnQsIHNldEFycm93UmVmLCBhcnJvd1JlZiB9ID1cbiAgICAgIHVzZUN1c3RvbUZsb2F0aW5nKHtcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICBhdXRvQWRqdXN0T3ZlcmZsb3csXG4gICAgICAgIHdpdGhBcnJvdyxcbiAgICAgICAgYWxpZ24sXG4gICAgICAgIHRyYW5zZm9ybTogY3VycmVudFRyYW5zZm9ybSxcbiAgICAgIH0pO1xuXG4gICAgY29uc3Qge1xuICAgICAgaXNPcGVuLFxuICAgICAgaGFuZGxlUG9pbnRlckVudGVyLFxuICAgICAgaGFuZGxlUG9pbnRlckxlYXZlLFxuICAgICAgaGFuZGxlRm9jdXMsXG4gICAgICBoYW5kbGVCbHVyLFxuICAgICAgaGFuZGxlQ2xpY2ssXG4gICAgICBoYW5kbGVDb250ZXh0TWVudSxcbiAgICAgIGhhbmRsZVBvaW50ZXJVcCxcbiAgICB9ID0gdXNlU2hvd1Rvb2x0aXBDb250cm9sbGVyKHtcbiAgICAgIHRyaWdnZXIsXG4gICAgICBkZWZhdWx0T3BlbixcbiAgICAgIG9wZW4sXG4gICAgICBtb3VzZUVudGVyRGVsYXksXG4gICAgICBtb3VzZUxlYXZlRGVsYXksXG4gICAgICBzaG93SW5DdXJzb3JQb3NpdGlvbixcbiAgICAgIHBsYWNlbWVudDogZmxvYXRpbmdQbGFjZW1lbnQsXG4gICAgICByZWZzLFxuICAgICAgb25PcGVuQ2hhbmdlLFxuICAgICAgYXJyb3dSZWYsXG4gICAgfSk7XG5cbiAgICBjb25zdCB7IHNldFRhcmdldFJlZiB9ID0gdXNlVGFyZ2V0UmVmQ29udHJvbGxlcih7XG4gICAgICBnZXRUYXJnZXRET01Ob2RlLFxuICAgICAgcmVmcyxcbiAgICAgIGhhbmRsZVBvaW50ZXJFbnRlcixcbiAgICAgIGhhbmRsZVBvaW50ZXJMZWF2ZSxcbiAgICAgIGhhbmRsZUZvY3VzLFxuICAgICAgaGFuZGxlQmx1cixcbiAgICAgIGhhbmRsZUNsaWNrLFxuICAgICAgaGFuZGxlQ29udGV4dE1lbnUsXG4gICAgICBoYW5kbGVQb2ludGVyVXAsXG4gICAgfSk7XG5cbiAgICBjb25zdCBhcnJvd1BsYWNlbWVudENvcnJlY3Rpb24gPSBnZXRBcnJvd1BsYWNlbWVudENvcnJlY3Rpb24oZmxvYXRpbmdQbGFjZW1lbnQsIHJlZnMsIGFsaWduKTtcblxuICAgIGNvbnN0IHJlbmRlckZsb2F0aW5nRWxlbWVudCA9ICgpID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICByZWY9e3JlZnMuc2V0RmxvYXRpbmd9XG4gICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICBnZXRCYXNlVG9vbHRpcEZsb2F0aW5nV3JhcHBlclN0eWxlKGZsb2F0aW5nUGxhY2VtZW50LCB3aXRoQXJyb3csIGlzT3BlbiksXG4gICAgICAgICAgICBzdHlsZXM/LmZsb2F0aW5nV3JhcHBlcj8uKHRoZW1lKSxcbiAgICAgICAgICBdfVxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAuLi5mbG9hdGluZ1N0eWxlcyxcbiAgICAgICAgICAgIHdpZHRoOiAhY3VycmVudFRyYW5zZm9ybSA/IFwibWF4LWNvbnRlbnRcIiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHpJbmRleCxcbiAgICAgICAgICB9fVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICA+XG4gICAgICAgICAge2Zsb2F0aW5nRWxlbWVudH1cbiAgICAgICAgICB7d2l0aEFycm93ICYmIChcbiAgICAgICAgICAgIDxGbG9hdGluZ0Fycm93XG4gICAgICAgICAgICAgIHJlZj17c2V0QXJyb3dSZWZ9XG4gICAgICAgICAgICAgIGNvbnRleHQ9e2NvbnRleHR9XG4gICAgICAgICAgICAgIHdpZHRoPXtBUlJPV19XSURUSH1cbiAgICAgICAgICAgICAgaGVpZ2h0PXtBUlJPV19IRUlHSFR9XG4gICAgICAgICAgICAgIGZpbGw9e2Fycm93Q29sb3J9XG4gICAgICAgICAgICAgIHN0eWxlPXthcnJvd1BsYWNlbWVudENvcnJlY3Rpb259XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgY29uc3QgY2hpbGRyZW5XaXRoUHJvcHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghd2l0aG91dFdyYXBwZXIpIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgICAgfVxuXG4gICAgICBsZXQgYWRkZWRQcm9wc0NvdW50ZXIgPSAwO1xuXG4gICAgICByZXR1cm4gUmVhY3QuQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCAoY2hpbGQpID0+IHtcbiAgICAgICAgaWYgKGFkZGVkUHJvcHNDb3VudGVyID4gMCB8fCAhUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpKSB7XG4gICAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgICB9XG5cbiAgICAgICAgYWRkZWRQcm9wc0NvdW50ZXIgKz0gMTtcblxuICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgLi4uY2hpbGQucHJvcHMsXG4gICAgICAgICAgcmVmOiBzZXRUYXJnZXRSZWYsXG4gICAgICAgICAgb25Qb2ludGVyRW50ZXI6IGhhbmRsZVBvaW50ZXJFbnRlciA/PyBjaGlsZD8ucHJvcHM/Lm9uUG9pbnRlckVudGVyLFxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlOiBoYW5kbGVQb2ludGVyTGVhdmUgPz8gY2hpbGQ/LnByb3BzPy5vblBvaW50ZXJMZWF2ZSxcbiAgICAgICAgICBvbkZvY3VzOiBoYW5kbGVGb2N1cyA/PyBjaGlsZD8ucHJvcHM/Lm9uRm9jdXMsXG4gICAgICAgICAgb25CbHVyOiBoYW5kbGVCbHVyID8/IGNoaWxkPy5wcm9wcz8ub25CbHVyLFxuICAgICAgICAgIG9uQ2xpY2s6IGhhbmRsZUNsaWNrID8/IGNoaWxkPy5wcm9wcz8ub25DbGljayxcbiAgICAgICAgICBvbkNvbnRleHRNZW51OiBoYW5kbGVDb250ZXh0TWVudSA/PyBjaGlsZD8ucHJvcHM/Lm9uQ29udGV4dE1lbnUsXG4gICAgICAgICAgb25Qb2ludGVyVXA6IGhhbmRsZVBvaW50ZXJVcCA/PyBjaGlsZD8ucHJvcHM/Lm9uUG9pbnRlclVwLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sIFtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgaGFuZGxlQmx1cixcbiAgICAgIGhhbmRsZUNsaWNrLFxuICAgICAgaGFuZGxlQ29udGV4dE1lbnUsXG4gICAgICBoYW5kbGVGb2N1cyxcbiAgICAgIGhhbmRsZVBvaW50ZXJFbnRlcixcbiAgICAgIGhhbmRsZVBvaW50ZXJMZWF2ZSxcbiAgICAgIGhhbmRsZVBvaW50ZXJVcCxcbiAgICAgIHNldFRhcmdldFJlZixcbiAgICAgIHdpdGhvdXRXcmFwcGVyLFxuICAgIF0pO1xuXG4gICAgY29uc3QgZ2V0RmxvYXRpbmdFbGVtZW50ID0gKCkgPT4ge1xuICAgICAgaWYgKCFpc09wZW4gJiYgIXNob3dJbkN1cnNvclBvc2l0aW9uKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY3JlYXRlUG9ydGFsKFxuICAgICAgICByZW5kZXJGbG9hdGluZ0VsZW1lbnQoKSxcbiAgICAgICAgZ2V0UG9wdXBDb250YWluZXIocmVmcy5kb21SZWZlcmVuY2UuY3VycmVudCA/PyBkb2N1bWVudC5ib2R5KVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgaWYgKGlzTmlsKGdldFRhcmdldERPTU5vZGUpICYmIGlzTmlsKGNoaWxkcmVuKSAmJiBpc1VuZGVmaW5lZChvcGVuKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGlzRnVuY3Rpb24oZ2V0VGFyZ2V0RE9NTm9kZSkpIHtcbiAgICAgIGlmIChpc051bGwoZ2V0VGFyZ2V0RE9NTm9kZSgpKSkge1xuICAgICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgIHtnZXRGbG9hdGluZ0VsZW1lbnQoKX1cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh3aXRob3V0V3JhcHBlcikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7Y2hpbGRyZW5XaXRoUHJvcHN9XG4gICAgICAgICAge2dldEZsb2F0aW5nRWxlbWVudCgpfVxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPXtzZXRUYXJnZXRSZWZ9XG4gICAgICAgIGNzcz17W2Jhc2VUb29sdGlwUmVmZXJlbmNlV3JhcHBlclN0eWxlLCBzdHlsZXM/LnJlZmVyZW5jZVdyYXBwZXI/Lih0aGVtZSldfVxuICAgICAgICBvblBvaW50ZXJFbnRlcj17aGFuZGxlUG9pbnRlckVudGVyfVxuICAgICAgICBvblBvaW50ZXJMZWF2ZT17aGFuZGxlUG9pbnRlckxlYXZlfVxuICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgICAgb25Db250ZXh0TWVudT17aGFuZGxlQ29udGV4dE1lbnV9XG4gICAgICAgIG9uUG9pbnRlclVwPXtoYW5kbGVQb2ludGVyVXB9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge2dldEZsb2F0aW5nRWxlbWVudCgpfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuKTtcbiJdfQ== */"], style: {
91
+ return /* @__PURE__ */ jsxs("div", { ref: refs.setFloating, css: [getBaseTooltipFloatingWrapperStyle(floatingPlacement, withArrow, isOpen), (_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQmFzZVRvb2x0aXAvQmFzZVRvb2x0aXAudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlHVSIsImZpbGUiOiIvYnVpbGRzL2Zyb250ZW5kL2xpYnMvdWkta2l0L3NyYy9jb21wb25lbnRzL0Jhc2VUb29sdGlwL0Jhc2VUb29sdGlwLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICB0eXBlIEZDLFxuICBtZW1vLFxuICB0eXBlIE11dGFibGVSZWZPYmplY3QsXG4gIHR5cGUgUHJvcHNXaXRoQ2hpbGRyZW4sXG4gIHVzZU1lbW8sXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlVG9vbHRpcFByb3BzLCBCYXNlVG9vbHRpcFRyaWdnZXJUeXBlIH0gZnJvbSBcIi4vQmFzZVRvb2x0aXAudHlwZXNcIjtcbmltcG9ydCB7IEZsb2F0aW5nQXJyb3cgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0XCI7XG5pbXBvcnQge1xuICBBUlJPV19IRUlHSFQsXG4gIEFSUk9XX1dJRFRILFxuICBnZXRBcnJvd1BsYWNlbWVudENvcnJlY3Rpb24sXG4gIE1heF9aSW5kZXgsXG4gIHdpdGhSZWYsXG59IGZyb20gXCIuL0Jhc2VUb29sdGlwLnV0aWxzXCI7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgeyB1c2VTaG93VG9vbHRpcENvbnRyb2xsZXIgfSBmcm9tIFwiLi9ob29rcy91c2VTaG93VG9vbHRpcENvbnRyb2xsZXJcIjtcbmltcG9ydCB7XG4gIGJhc2VUb29sdGlwUmVmZXJlbmNlV3JhcHBlclN0eWxlLFxuICBnZXRCYXNlVG9vbHRpcEZsb2F0aW5nV3JhcHBlclN0eWxlLFxufSBmcm9tIFwiLi9CYXNlVG9vbHRpcC5zdHlsZXNcIjtcbmltcG9ydCB7IHVzZVRoZW1lIH0gZnJvbSBcImhvb2tzL3VzZVRoZW1lXCI7XG5pbXBvcnQgeyB1c2VDdXN0b21GbG9hdGluZyB9IGZyb20gXCIuL2hvb2tzL3VzZUN1c3RvbUZsb2F0aW5nXCI7XG5pbXBvcnQgeyB1c2VUYXJnZXRSZWZDb250cm9sbGVyIH0gZnJvbSBcIi4vaG9va3MvdXNlVGFyZ2V0UmVmQ29udHJvbGxlclwiO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiwgaXNOaWwsIGlzTnVsbCwgaXNVbmRlZmluZWQgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmV4cG9ydCBjb25zdCBCYXNlVG9vbHRpcDogRkM8UHJvcHNXaXRoQ2hpbGRyZW48QmFzZVRvb2x0aXBQcm9wcz4+ID0gbWVtbyhcbiAgKHtcbiAgICBmbG9hdGluZ0VsZW1lbnQsXG4gICAgYXJyb3dDb2xvcixcbiAgICB3aXRoQXJyb3cgPSB0cnVlLFxuICAgIHBsYWNlbWVudCA9IFwidG9wXCIsXG4gICAgYXV0b0FkanVzdE92ZXJmbG93ID0gdHJ1ZSxcbiAgICBkZWZhdWx0T3BlbiA9IGZhbHNlLFxuICAgIG9wZW4sXG4gICAgekluZGV4ID0gTWF4X1pJbmRleCxcbiAgICB0cmlnZ2VyID0gW1wiY2xpY2tcIiBhcyBCYXNlVG9vbHRpcFRyaWdnZXJUeXBlXSxcbiAgICBtb3VzZUVudGVyRGVsYXkgPSAwLjEsXG4gICAgbW91c2VMZWF2ZURlbGF5ID0gMC4xLFxuICAgIGFsaWduLFxuICAgIHRyYW5zZm9ybSA9IHRydWUsXG4gICAgY2xhc3NOYW1lLFxuICAgIHdpdGhvdXRXcmFwcGVyLFxuICAgIG9uT3BlbkNoYW5nZSxcbiAgICBjaGlsZHJlbixcbiAgICBzdHlsZXMsXG4gICAgc2hvd0luQ3Vyc29yUG9zaXRpb24gPSBmYWxzZSxcbiAgICBnZXRQb3B1cENvbnRhaW5lciA9ICgpID0+IGRvY3VtZW50LmJvZHksXG4gICAgb25Db250ZXh0TWVudSxcbiAgICBnZXRUYXJnZXRET01Ob2RlLFxuICB9KSA9PiB7XG4gICAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICAgIGNvbnN0IGN1cnJlbnRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0gJiYgIXNob3dJbkN1cnNvclBvc2l0aW9uO1xuXG4gICAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcywgY29udGV4dCwgZmxvYXRpbmdQbGFjZW1lbnQsIHNldEFycm93UmVmLCBhcnJvd1JlZiB9ID1cbiAgICAgIHVzZUN1c3RvbUZsb2F0aW5nKHtcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICBhdXRvQWRqdXN0T3ZlcmZsb3csXG4gICAgICAgIHdpdGhBcnJvdyxcbiAgICAgICAgYWxpZ24sXG4gICAgICAgIHRyYW5zZm9ybTogY3VycmVudFRyYW5zZm9ybSxcbiAgICAgIH0pO1xuXG4gICAgY29uc3Qge1xuICAgICAgaXNPcGVuLFxuICAgICAgaGFuZGxlUG9pbnRlckVudGVyLFxuICAgICAgaGFuZGxlUG9pbnRlckxlYXZlLFxuICAgICAgaGFuZGxlRm9jdXMsXG4gICAgICBoYW5kbGVCbHVyLFxuICAgICAgaGFuZGxlQ2xpY2ssXG4gICAgICBoYW5kbGVDb250ZXh0TWVudSxcbiAgICAgIGhhbmRsZVBvaW50ZXJVcCxcbiAgICB9ID0gdXNlU2hvd1Rvb2x0aXBDb250cm9sbGVyKHtcbiAgICAgIHRyaWdnZXIsXG4gICAgICBkZWZhdWx0T3BlbixcbiAgICAgIG9wZW4sXG4gICAgICBtb3VzZUVudGVyRGVsYXksXG4gICAgICBtb3VzZUxlYXZlRGVsYXksXG4gICAgICBzaG93SW5DdXJzb3JQb3NpdGlvbixcbiAgICAgIHBsYWNlbWVudDogZmxvYXRpbmdQbGFjZW1lbnQsXG4gICAgICByZWZzLFxuICAgICAgb25PcGVuQ2hhbmdlLFxuICAgICAgb25Db250ZXh0TWVudSxcbiAgICAgIGFycm93UmVmLFxuICAgIH0pO1xuXG4gICAgY29uc3QgeyBzZXRUYXJnZXRSZWYgfSA9IHVzZVRhcmdldFJlZkNvbnRyb2xsZXIoe1xuICAgICAgZ2V0VGFyZ2V0RE9NTm9kZSxcbiAgICAgIHJlZnMsXG4gICAgICBoYW5kbGVQb2ludGVyRW50ZXIsXG4gICAgICBoYW5kbGVQb2ludGVyTGVhdmUsXG4gICAgICBoYW5kbGVGb2N1cyxcbiAgICAgIGhhbmRsZUJsdXIsXG4gICAgICBoYW5kbGVDbGljayxcbiAgICAgIGhhbmRsZUNvbnRleHRNZW51LFxuICAgICAgaGFuZGxlUG9pbnRlclVwLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYXJyb3dQbGFjZW1lbnRDb3JyZWN0aW9uID0gZ2V0QXJyb3dQbGFjZW1lbnRDb3JyZWN0aW9uKGZsb2F0aW5nUGxhY2VtZW50LCByZWZzLCBhbGlnbik7XG5cbiAgICBjb25zdCByZW5kZXJGbG9hdGluZ0VsZW1lbnQgPSAoKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgcmVmPXtyZWZzLnNldEZsb2F0aW5nfVxuICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgZ2V0QmFzZVRvb2x0aXBGbG9hdGluZ1dyYXBwZXJTdHlsZShmbG9hdGluZ1BsYWNlbWVudCwgd2l0aEFycm93LCBpc09wZW4pLFxuICAgICAgICAgICAgc3R5bGVzPy5mbG9hdGluZ1dyYXBwZXI/Lih0aGVtZSksXG4gICAgICAgICAgXX1cbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgLi4uZmxvYXRpbmdTdHlsZXMsXG4gICAgICAgICAgICB3aWR0aDogIWN1cnJlbnRUcmFuc2Zvcm0gPyBcIm1heC1jb250ZW50XCIgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB6SW5kZXgsXG4gICAgICAgICAgfX1cbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgPlxuICAgICAgICAgIHtmbG9hdGluZ0VsZW1lbnR9XG4gICAgICAgICAge3dpdGhBcnJvdyAmJiAoXG4gICAgICAgICAgICA8RmxvYXRpbmdBcnJvd1xuICAgICAgICAgICAgICByZWY9e3NldEFycm93UmVmfVxuICAgICAgICAgICAgICBjb250ZXh0PXtjb250ZXh0fVxuICAgICAgICAgICAgICB3aWR0aD17QVJST1dfV0lEVEh9XG4gICAgICAgICAgICAgIGhlaWdodD17QVJST1dfSEVJR0hUfVxuICAgICAgICAgICAgICBmaWxsPXthcnJvd0NvbG9yfVxuICAgICAgICAgICAgICBzdHlsZT17YXJyb3dQbGFjZW1lbnRDb3JyZWN0aW9ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNoaWxkcmVuV2l0aFByb3BzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXdpdGhvdXRXcmFwcGVyKSB7XG4gICAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICAgIH1cblxuICAgICAgbGV0IGFkZGVkUHJvcHNDb3VudGVyID0gMDtcblxuICAgICAgcmV0dXJuIFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChhZGRlZFByb3BzQ291bnRlciA+IDAgfHwgIVJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGFkZGVkUHJvcHNDb3VudGVyICs9IDE7XG5cbiAgICAgICAgY29uc3Qgc2V0UmVmID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgICAgIHNldFRhcmdldFJlZihlbGVtZW50KTtcblxuICAgICAgICAgIGlmICh3aXRoUmVmKGNoaWxkKSkge1xuICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24oY2hpbGQ/LnJlZikpIHtcbiAgICAgICAgICAgICAgY2hpbGQucmVmKGVsZW1lbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgKGNoaWxkLnJlZiBhcyBNdXRhYmxlUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgbnVsbD4pLmN1cnJlbnQgPSBlbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgLi4uY2hpbGQucHJvcHMsXG4gICAgICAgICAgcmVmOiBzZXRSZWYsXG4gICAgICAgICAgb25Qb2ludGVyRW50ZXI6IGhhbmRsZVBvaW50ZXJFbnRlciA/PyBjaGlsZD8ucHJvcHM/Lm9uUG9pbnRlckVudGVyLFxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlOiBoYW5kbGVQb2ludGVyTGVhdmUgPz8gY2hpbGQ/LnByb3BzPy5vblBvaW50ZXJMZWF2ZSxcbiAgICAgICAgICBvbkZvY3VzOiBoYW5kbGVGb2N1cyA/PyBjaGlsZD8ucHJvcHM/Lm9uRm9jdXMsXG4gICAgICAgICAgb25CbHVyOiBoYW5kbGVCbHVyID8/IGNoaWxkPy5wcm9wcz8ub25CbHVyLFxuICAgICAgICAgIG9uQ2xpY2s6IGhhbmRsZUNsaWNrID8/IGNoaWxkPy5wcm9wcz8ub25DbGljayxcbiAgICAgICAgICBvbkNvbnRleHRNZW51OiBoYW5kbGVDb250ZXh0TWVudSA/PyBjaGlsZD8ucHJvcHM/Lm9uQ29udGV4dE1lbnUsXG4gICAgICAgICAgb25Qb2ludGVyVXA6IGhhbmRsZVBvaW50ZXJVcCA/PyBjaGlsZD8ucHJvcHM/Lm9uUG9pbnRlclVwLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sIFtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgaGFuZGxlQmx1cixcbiAgICAgIGhhbmRsZUNsaWNrLFxuICAgICAgaGFuZGxlQ29udGV4dE1lbnUsXG4gICAgICBoYW5kbGVGb2N1cyxcbiAgICAgIGhhbmRsZVBvaW50ZXJFbnRlcixcbiAgICAgIGhhbmRsZVBvaW50ZXJMZWF2ZSxcbiAgICAgIGhhbmRsZVBvaW50ZXJVcCxcbiAgICAgIHNldFRhcmdldFJlZixcbiAgICAgIHdpdGhvdXRXcmFwcGVyLFxuICAgIF0pO1xuXG4gICAgY29uc3QgZ2V0RmxvYXRpbmdFbGVtZW50ID0gKCkgPT4ge1xuICAgICAgaWYgKCFpc09wZW4gJiYgIXNob3dJbkN1cnNvclBvc2l0aW9uKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY3JlYXRlUG9ydGFsKFxuICAgICAgICByZW5kZXJGbG9hdGluZ0VsZW1lbnQoKSxcbiAgICAgICAgZ2V0UG9wdXBDb250YWluZXIocmVmcy5kb21SZWZlcmVuY2UuY3VycmVudCA/PyBkb2N1bWVudC5ib2R5KVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgaWYgKGlzTmlsKGdldFRhcmdldERPTU5vZGUpICYmIGlzTmlsKGNoaWxkcmVuKSAmJiBpc1VuZGVmaW5lZChvcGVuKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGlzRnVuY3Rpb24oZ2V0VGFyZ2V0RE9NTm9kZSkpIHtcbiAgICAgIGlmIChpc051bGwoZ2V0VGFyZ2V0RE9NTm9kZSgpKSkge1xuICAgICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgIHtnZXRGbG9hdGluZ0VsZW1lbnQoKX1cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh3aXRob3V0V3JhcHBlcikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7Y2hpbGRyZW5XaXRoUHJvcHN9XG4gICAgICAgICAge2dldEZsb2F0aW5nRWxlbWVudCgpfVxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPXtzZXRUYXJnZXRSZWZ9XG4gICAgICAgIGNzcz17W2Jhc2VUb29sdGlwUmVmZXJlbmNlV3JhcHBlclN0eWxlLCBzdHlsZXM/LnJlZmVyZW5jZVdyYXBwZXI/Lih0aGVtZSldfVxuICAgICAgICBvblBvaW50ZXJFbnRlcj17aGFuZGxlUG9pbnRlckVudGVyfVxuICAgICAgICBvblBvaW50ZXJMZWF2ZT17aGFuZGxlUG9pbnRlckxlYXZlfVxuICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgICAgb25Db250ZXh0TWVudT17aGFuZGxlQ29udGV4dE1lbnV9XG4gICAgICAgIG9uUG9pbnRlclVwPXtoYW5kbGVQb2ludGVyVXB9XG4gICAgICAgIG9uUG9pbnRlckRvd249eyhlKSA9PiB7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgICB7Z2V0RmxvYXRpbmdFbGVtZW50KCl9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG4pO1xuIl19 */"], style: {
90
92
  ...floatingStyles,
91
93
  width: !currentTransform ? "max-content" : void 0,
92
94
  zIndex
@@ -106,9 +108,19 @@ const BaseTooltip = memo(({
106
108
  return child;
107
109
  }
108
110
  addedPropsCounter += 1;
111
+ const setRef = (element) => {
112
+ setTargetRef(element);
113
+ if (withRef(child)) {
114
+ if (isFunction(child == null ? void 0 : child.ref)) {
115
+ child.ref(element);
116
+ } else {
117
+ child.ref.current = element;
118
+ }
119
+ }
120
+ };
109
121
  return React.cloneElement(child, {
110
122
  ...child.props,
111
- ref: setTargetRef,
123
+ ref: setRef,
112
124
  onPointerEnter: handlePointerEnter ?? ((_a2 = child == null ? void 0 : child.props) == null ? void 0 : _a2.onPointerEnter),
113
125
  onPointerLeave: handlePointerLeave ?? ((_b = child == null ? void 0 : child.props) == null ? void 0 : _b.onPointerLeave),
114
126
  onFocus: handleFocus ?? ((_c = child == null ? void 0 : child.props) == null ? void 0 : _c.onFocus),
@@ -143,7 +155,9 @@ const BaseTooltip = memo(({
143
155
  getFloatingElement()
144
156
  ] });
145
157
  }
146
- return /* @__PURE__ */ jsxs("div", { ref: setTargetRef, 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQmFzZVRvb2x0aXAvQmFzZVRvb2x0aXAudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlNUSIsImZpbGUiOiIvYnVpbGRzL2Zyb250ZW5kL2xpYnMvdWkta2l0L3NyYy9jb21wb25lbnRzL0Jhc2VUb29sdGlwL0Jhc2VUb29sdGlwLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB0eXBlIEZDLCBtZW1vLCB0eXBlIFByb3BzV2l0aENoaWxkcmVuLCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IEJhc2VUb29sdGlwUHJvcHMsIEJhc2VUb29sdGlwVHJpZ2dlclR5cGUgfSBmcm9tIFwiLi9CYXNlVG9vbHRpcC50eXBlc1wiO1xuaW1wb3J0IHsgRmxvYXRpbmdBcnJvdyB9IGZyb20gXCJAZmxvYXRpbmctdWkvcmVhY3RcIjtcbmltcG9ydCB7XG4gIEFSUk9XX0hFSUdIVCxcbiAgQVJST1dfV0lEVEgsXG4gIGdldEFycm93UGxhY2VtZW50Q29ycmVjdGlvbixcbiAgTWF4X1pJbmRleCxcbn0gZnJvbSBcIi4vQmFzZVRvb2x0aXAudXRpbHNcIjtcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7IHVzZVNob3dUb29sdGlwQ29udHJvbGxlciB9IGZyb20gXCIuL2hvb2tzL3VzZVNob3dUb29sdGlwQ29udHJvbGxlclwiO1xuaW1wb3J0IHtcbiAgYmFzZVRvb2x0aXBSZWZlcmVuY2VXcmFwcGVyU3R5bGUsXG4gIGdldEJhc2VUb29sdGlwRmxvYXRpbmdXcmFwcGVyU3R5bGUsXG59IGZyb20gXCIuL0Jhc2VUb29sdGlwLnN0eWxlc1wiO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tIFwiaG9va3MvdXNlVGhlbWVcIjtcbmltcG9ydCB7IHVzZUN1c3RvbUZsb2F0aW5nIH0gZnJvbSBcIi4vaG9va3MvdXNlQ3VzdG9tRmxvYXRpbmdcIjtcbmltcG9ydCB7IHVzZVRhcmdldFJlZkNvbnRyb2xsZXIgfSBmcm9tIFwiLi9ob29rcy91c2VUYXJnZXRSZWZDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uLCBpc05pbCwgaXNOdWxsLCBpc1VuZGVmaW5lZCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuZXhwb3J0IGNvbnN0IEJhc2VUb29sdGlwOiBGQzxQcm9wc1dpdGhDaGlsZHJlbjxCYXNlVG9vbHRpcFByb3BzPj4gPSBtZW1vKFxuICAoe1xuICAgIGZsb2F0aW5nRWxlbWVudCxcbiAgICBhcnJvd0NvbG9yLFxuICAgIHdpdGhBcnJvdyA9IHRydWUsXG4gICAgcGxhY2VtZW50ID0gXCJ0b3BcIixcbiAgICBhdXRvQWRqdXN0T3ZlcmZsb3cgPSB0cnVlLFxuICAgIGRlZmF1bHRPcGVuID0gZmFsc2UsXG4gICAgb3BlbixcbiAgICB6SW5kZXggPSBNYXhfWkluZGV4LFxuICAgIHRyaWdnZXIgPSBbXCJjbGlja1wiIGFzIEJhc2VUb29sdGlwVHJpZ2dlclR5cGVdLFxuICAgIG1vdXNlRW50ZXJEZWxheSA9IDAuMSxcbiAgICBtb3VzZUxlYXZlRGVsYXkgPSAwLjEsXG4gICAgYWxpZ24sXG4gICAgdHJhbnNmb3JtID0gdHJ1ZSxcbiAgICBjbGFzc05hbWUsXG4gICAgb25PcGVuQ2hhbmdlLFxuICAgIGNoaWxkcmVuLFxuICAgIHN0eWxlcyxcbiAgICB3aXRob3V0V3JhcHBlcixcbiAgICBzaG93SW5DdXJzb3JQb3NpdGlvbiA9IGZhbHNlLFxuICAgIGdldFBvcHVwQ29udGFpbmVyID0gKCkgPT4gZG9jdW1lbnQuYm9keSxcbiAgICBnZXRUYXJnZXRET01Ob2RlLFxuICB9KSA9PiB7XG4gICAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICAgIGNvbnN0IGN1cnJlbnRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0gJiYgIXNob3dJbkN1cnNvclBvc2l0aW9uO1xuXG4gICAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcywgY29udGV4dCwgZmxvYXRpbmdQbGFjZW1lbnQsIHNldEFycm93UmVmLCBhcnJvd1JlZiB9ID1cbiAgICAgIHVzZUN1c3RvbUZsb2F0aW5nKHtcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICBhdXRvQWRqdXN0T3ZlcmZsb3csXG4gICAgICAgIHdpdGhBcnJvdyxcbiAgICAgICAgYWxpZ24sXG4gICAgICAgIHRyYW5zZm9ybTogY3VycmVudFRyYW5zZm9ybSxcbiAgICAgIH0pO1xuXG4gICAgY29uc3Qge1xuICAgICAgaXNPcGVuLFxuICAgICAgaGFuZGxlUG9pbnRlckVudGVyLFxuICAgICAgaGFuZGxlUG9pbnRlckxlYXZlLFxuICAgICAgaGFuZGxlRm9jdXMsXG4gICAgICBoYW5kbGVCbHVyLFxuICAgICAgaGFuZGxlQ2xpY2ssXG4gICAgICBoYW5kbGVDb250ZXh0TWVudSxcbiAgICAgIGhhbmRsZVBvaW50ZXJVcCxcbiAgICB9ID0gdXNlU2hvd1Rvb2x0aXBDb250cm9sbGVyKHtcbiAgICAgIHRyaWdnZXIsXG4gICAgICBkZWZhdWx0T3BlbixcbiAgICAgIG9wZW4sXG4gICAgICBtb3VzZUVudGVyRGVsYXksXG4gICAgICBtb3VzZUxlYXZlRGVsYXksXG4gICAgICBzaG93SW5DdXJzb3JQb3NpdGlvbixcbiAgICAgIHBsYWNlbWVudDogZmxvYXRpbmdQbGFjZW1lbnQsXG4gICAgICByZWZzLFxuICAgICAgb25PcGVuQ2hhbmdlLFxuICAgICAgYXJyb3dSZWYsXG4gICAgfSk7XG5cbiAgICBjb25zdCB7IHNldFRhcmdldFJlZiB9ID0gdXNlVGFyZ2V0UmVmQ29udHJvbGxlcih7XG4gICAgICBnZXRUYXJnZXRET01Ob2RlLFxuICAgICAgcmVmcyxcbiAgICAgIGhhbmRsZVBvaW50ZXJFbnRlcixcbiAgICAgIGhhbmRsZVBvaW50ZXJMZWF2ZSxcbiAgICAgIGhhbmRsZUZvY3VzLFxuICAgICAgaGFuZGxlQmx1cixcbiAgICAgIGhhbmRsZUNsaWNrLFxuICAgICAgaGFuZGxlQ29udGV4dE1lbnUsXG4gICAgICBoYW5kbGVQb2ludGVyVXAsXG4gICAgfSk7XG5cbiAgICBjb25zdCBhcnJvd1BsYWNlbWVudENvcnJlY3Rpb24gPSBnZXRBcnJvd1BsYWNlbWVudENvcnJlY3Rpb24oZmxvYXRpbmdQbGFjZW1lbnQsIHJlZnMsIGFsaWduKTtcblxuICAgIGNvbnN0IHJlbmRlckZsb2F0aW5nRWxlbWVudCA9ICgpID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICByZWY9e3JlZnMuc2V0RmxvYXRpbmd9XG4gICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICBnZXRCYXNlVG9vbHRpcEZsb2F0aW5nV3JhcHBlclN0eWxlKGZsb2F0aW5nUGxhY2VtZW50LCB3aXRoQXJyb3csIGlzT3BlbiksXG4gICAgICAgICAgICBzdHlsZXM/LmZsb2F0aW5nV3JhcHBlcj8uKHRoZW1lKSxcbiAgICAgICAgICBdfVxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAuLi5mbG9hdGluZ1N0eWxlcyxcbiAgICAgICAgICAgIHdpZHRoOiAhY3VycmVudFRyYW5zZm9ybSA/IFwibWF4LWNvbnRlbnRcIiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHpJbmRleCxcbiAgICAgICAgICB9fVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICA+XG4gICAgICAgICAge2Zsb2F0aW5nRWxlbWVudH1cbiAgICAgICAgICB7d2l0aEFycm93ICYmIChcbiAgICAgICAgICAgIDxGbG9hdGluZ0Fycm93XG4gICAgICAgICAgICAgIHJlZj17c2V0QXJyb3dSZWZ9XG4gICAgICAgICAgICAgIGNvbnRleHQ9e2NvbnRleHR9XG4gICAgICAgICAgICAgIHdpZHRoPXtBUlJPV19XSURUSH1cbiAgICAgICAgICAgICAgaGVpZ2h0PXtBUlJPV19IRUlHSFR9XG4gICAgICAgICAgICAgIGZpbGw9e2Fycm93Q29sb3J9XG4gICAgICAgICAgICAgIHN0eWxlPXthcnJvd1BsYWNlbWVudENvcnJlY3Rpb259XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgY29uc3QgY2hpbGRyZW5XaXRoUHJvcHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghd2l0aG91dFdyYXBwZXIpIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgICAgfVxuXG4gICAgICBsZXQgYWRkZWRQcm9wc0NvdW50ZXIgPSAwO1xuXG4gICAgICByZXR1cm4gUmVhY3QuQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCAoY2hpbGQpID0+IHtcbiAgICAgICAgaWYgKGFkZGVkUHJvcHNDb3VudGVyID4gMCB8fCAhUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpKSB7XG4gICAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgICB9XG5cbiAgICAgICAgYWRkZWRQcm9wc0NvdW50ZXIgKz0gMTtcblxuICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgLi4uY2hpbGQucHJvcHMsXG4gICAgICAgICAgcmVmOiBzZXRUYXJnZXRSZWYsXG4gICAgICAgICAgb25Qb2ludGVyRW50ZXI6IGhhbmRsZVBvaW50ZXJFbnRlciA/PyBjaGlsZD8ucHJvcHM/Lm9uUG9pbnRlckVudGVyLFxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlOiBoYW5kbGVQb2ludGVyTGVhdmUgPz8gY2hpbGQ/LnByb3BzPy5vblBvaW50ZXJMZWF2ZSxcbiAgICAgICAgICBvbkZvY3VzOiBoYW5kbGVGb2N1cyA/PyBjaGlsZD8ucHJvcHM/Lm9uRm9jdXMsXG4gICAgICAgICAgb25CbHVyOiBoYW5kbGVCbHVyID8/IGNoaWxkPy5wcm9wcz8ub25CbHVyLFxuICAgICAgICAgIG9uQ2xpY2s6IGhhbmRsZUNsaWNrID8/IGNoaWxkPy5wcm9wcz8ub25DbGljayxcbiAgICAgICAgICBvbkNvbnRleHRNZW51OiBoYW5kbGVDb250ZXh0TWVudSA/PyBjaGlsZD8ucHJvcHM/Lm9uQ29udGV4dE1lbnUsXG4gICAgICAgICAgb25Qb2ludGVyVXA6IGhhbmRsZVBvaW50ZXJVcCA/PyBjaGlsZD8ucHJvcHM/Lm9uUG9pbnRlclVwLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sIFtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgaGFuZGxlQmx1cixcbiAgICAgIGhhbmRsZUNsaWNrLFxuICAgICAgaGFuZGxlQ29udGV4dE1lbnUsXG4gICAgICBoYW5kbGVGb2N1cyxcbiAgICAgIGhhbmRsZVBvaW50ZXJFbnRlcixcbiAgICAgIGhhbmRsZVBvaW50ZXJMZWF2ZSxcbiAgICAgIGhhbmRsZVBvaW50ZXJVcCxcbiAgICAgIHNldFRhcmdldFJlZixcbiAgICAgIHdpdGhvdXRXcmFwcGVyLFxuICAgIF0pO1xuXG4gICAgY29uc3QgZ2V0RmxvYXRpbmdFbGVtZW50ID0gKCkgPT4ge1xuICAgICAgaWYgKCFpc09wZW4gJiYgIXNob3dJbkN1cnNvclBvc2l0aW9uKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY3JlYXRlUG9ydGFsKFxuICAgICAgICByZW5kZXJGbG9hdGluZ0VsZW1lbnQoKSxcbiAgICAgICAgZ2V0UG9wdXBDb250YWluZXIocmVmcy5kb21SZWZlcmVuY2UuY3VycmVudCA/PyBkb2N1bWVudC5ib2R5KVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgaWYgKGlzTmlsKGdldFRhcmdldERPTU5vZGUpICYmIGlzTmlsKGNoaWxkcmVuKSAmJiBpc1VuZGVmaW5lZChvcGVuKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGlzRnVuY3Rpb24oZ2V0VGFyZ2V0RE9NTm9kZSkpIHtcbiAgICAgIGlmIChpc051bGwoZ2V0VGFyZ2V0RE9NTm9kZSgpKSkge1xuICAgICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgIHtnZXRGbG9hdGluZ0VsZW1lbnQoKX1cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh3aXRob3V0V3JhcHBlcikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7Y2hpbGRyZW5XaXRoUHJvcHN9XG4gICAgICAgICAge2dldEZsb2F0aW5nRWxlbWVudCgpfVxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPXtzZXRUYXJnZXRSZWZ9XG4gICAgICAgIGNzcz17W2Jhc2VUb29sdGlwUmVmZXJlbmNlV3JhcHBlclN0eWxlLCBzdHlsZXM/LnJlZmVyZW5jZVdyYXBwZXI/Lih0aGVtZSldfVxuICAgICAgICBvblBvaW50ZXJFbnRlcj17aGFuZGxlUG9pbnRlckVudGVyfVxuICAgICAgICBvblBvaW50ZXJMZWF2ZT17aGFuZGxlUG9pbnRlckxlYXZlfVxuICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgICAgb25Db250ZXh0TWVudT17aGFuZGxlQ29udGV4dE1lbnV9XG4gICAgICAgIG9uUG9pbnRlclVwPXtoYW5kbGVQb2ludGVyVXB9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge2dldEZsb2F0aW5nRWxlbWVudCgpfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuKTtcbiJdfQ== */"], onPointerEnter: handlePointerEnter, onPointerLeave: handlePointerLeave, onFocus: handleFocus, onBlur: handleBlur, onClick: handleClick, onContextMenu: handleContextMenu, onPointerUp: handlePointerUp, children: [
158
+ return /* @__PURE__ */ jsxs("div", { ref: setTargetRef, 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvQmFzZVRvb2x0aXAvQmFzZVRvb2x0aXAudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThOUSIsImZpbGUiOiIvYnVpbGRzL2Zyb250ZW5kL2xpYnMvdWkta2l0L3NyYy9jb21wb25lbnRzL0Jhc2VUb29sdGlwL0Jhc2VUb29sdGlwLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICB0eXBlIEZDLFxuICBtZW1vLFxuICB0eXBlIE11dGFibGVSZWZPYmplY3QsXG4gIHR5cGUgUHJvcHNXaXRoQ2hpbGRyZW4sXG4gIHVzZU1lbW8sXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlVG9vbHRpcFByb3BzLCBCYXNlVG9vbHRpcFRyaWdnZXJUeXBlIH0gZnJvbSBcIi4vQmFzZVRvb2x0aXAudHlwZXNcIjtcbmltcG9ydCB7IEZsb2F0aW5nQXJyb3cgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0XCI7XG5pbXBvcnQge1xuICBBUlJPV19IRUlHSFQsXG4gIEFSUk9XX1dJRFRILFxuICBnZXRBcnJvd1BsYWNlbWVudENvcnJlY3Rpb24sXG4gIE1heF9aSW5kZXgsXG4gIHdpdGhSZWYsXG59IGZyb20gXCIuL0Jhc2VUb29sdGlwLnV0aWxzXCI7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgeyB1c2VTaG93VG9vbHRpcENvbnRyb2xsZXIgfSBmcm9tIFwiLi9ob29rcy91c2VTaG93VG9vbHRpcENvbnRyb2xsZXJcIjtcbmltcG9ydCB7XG4gIGJhc2VUb29sdGlwUmVmZXJlbmNlV3JhcHBlclN0eWxlLFxuICBnZXRCYXNlVG9vbHRpcEZsb2F0aW5nV3JhcHBlclN0eWxlLFxufSBmcm9tIFwiLi9CYXNlVG9vbHRpcC5zdHlsZXNcIjtcbmltcG9ydCB7IHVzZVRoZW1lIH0gZnJvbSBcImhvb2tzL3VzZVRoZW1lXCI7XG5pbXBvcnQgeyB1c2VDdXN0b21GbG9hdGluZyB9IGZyb20gXCIuL2hvb2tzL3VzZUN1c3RvbUZsb2F0aW5nXCI7XG5pbXBvcnQgeyB1c2VUYXJnZXRSZWZDb250cm9sbGVyIH0gZnJvbSBcIi4vaG9va3MvdXNlVGFyZ2V0UmVmQ29udHJvbGxlclwiO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiwgaXNOaWwsIGlzTnVsbCwgaXNVbmRlZmluZWQgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmV4cG9ydCBjb25zdCBCYXNlVG9vbHRpcDogRkM8UHJvcHNXaXRoQ2hpbGRyZW48QmFzZVRvb2x0aXBQcm9wcz4+ID0gbWVtbyhcbiAgKHtcbiAgICBmbG9hdGluZ0VsZW1lbnQsXG4gICAgYXJyb3dDb2xvcixcbiAgICB3aXRoQXJyb3cgPSB0cnVlLFxuICAgIHBsYWNlbWVudCA9IFwidG9wXCIsXG4gICAgYXV0b0FkanVzdE92ZXJmbG93ID0gdHJ1ZSxcbiAgICBkZWZhdWx0T3BlbiA9IGZhbHNlLFxuICAgIG9wZW4sXG4gICAgekluZGV4ID0gTWF4X1pJbmRleCxcbiAgICB0cmlnZ2VyID0gW1wiY2xpY2tcIiBhcyBCYXNlVG9vbHRpcFRyaWdnZXJUeXBlXSxcbiAgICBtb3VzZUVudGVyRGVsYXkgPSAwLjEsXG4gICAgbW91c2VMZWF2ZURlbGF5ID0gMC4xLFxuICAgIGFsaWduLFxuICAgIHRyYW5zZm9ybSA9IHRydWUsXG4gICAgY2xhc3NOYW1lLFxuICAgIHdpdGhvdXRXcmFwcGVyLFxuICAgIG9uT3BlbkNoYW5nZSxcbiAgICBjaGlsZHJlbixcbiAgICBzdHlsZXMsXG4gICAgc2hvd0luQ3Vyc29yUG9zaXRpb24gPSBmYWxzZSxcbiAgICBnZXRQb3B1cENvbnRhaW5lciA9ICgpID0+IGRvY3VtZW50LmJvZHksXG4gICAgb25Db250ZXh0TWVudSxcbiAgICBnZXRUYXJnZXRET01Ob2RlLFxuICB9KSA9PiB7XG4gICAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICAgIGNvbnN0IGN1cnJlbnRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0gJiYgIXNob3dJbkN1cnNvclBvc2l0aW9uO1xuXG4gICAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcywgY29udGV4dCwgZmxvYXRpbmdQbGFjZW1lbnQsIHNldEFycm93UmVmLCBhcnJvd1JlZiB9ID1cbiAgICAgIHVzZUN1c3RvbUZsb2F0aW5nKHtcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICBhdXRvQWRqdXN0T3ZlcmZsb3csXG4gICAgICAgIHdpdGhBcnJvdyxcbiAgICAgICAgYWxpZ24sXG4gICAgICAgIHRyYW5zZm9ybTogY3VycmVudFRyYW5zZm9ybSxcbiAgICAgIH0pO1xuXG4gICAgY29uc3Qge1xuICAgICAgaXNPcGVuLFxuICAgICAgaGFuZGxlUG9pbnRlckVudGVyLFxuICAgICAgaGFuZGxlUG9pbnRlckxlYXZlLFxuICAgICAgaGFuZGxlRm9jdXMsXG4gICAgICBoYW5kbGVCbHVyLFxuICAgICAgaGFuZGxlQ2xpY2ssXG4gICAgICBoYW5kbGVDb250ZXh0TWVudSxcbiAgICAgIGhhbmRsZVBvaW50ZXJVcCxcbiAgICB9ID0gdXNlU2hvd1Rvb2x0aXBDb250cm9sbGVyKHtcbiAgICAgIHRyaWdnZXIsXG4gICAgICBkZWZhdWx0T3BlbixcbiAgICAgIG9wZW4sXG4gICAgICBtb3VzZUVudGVyRGVsYXksXG4gICAgICBtb3VzZUxlYXZlRGVsYXksXG4gICAgICBzaG93SW5DdXJzb3JQb3NpdGlvbixcbiAgICAgIHBsYWNlbWVudDogZmxvYXRpbmdQbGFjZW1lbnQsXG4gICAgICByZWZzLFxuICAgICAgb25PcGVuQ2hhbmdlLFxuICAgICAgb25Db250ZXh0TWVudSxcbiAgICAgIGFycm93UmVmLFxuICAgIH0pO1xuXG4gICAgY29uc3QgeyBzZXRUYXJnZXRSZWYgfSA9IHVzZVRhcmdldFJlZkNvbnRyb2xsZXIoe1xuICAgICAgZ2V0VGFyZ2V0RE9NTm9kZSxcbiAgICAgIHJlZnMsXG4gICAgICBoYW5kbGVQb2ludGVyRW50ZXIsXG4gICAgICBoYW5kbGVQb2ludGVyTGVhdmUsXG4gICAgICBoYW5kbGVGb2N1cyxcbiAgICAgIGhhbmRsZUJsdXIsXG4gICAgICBoYW5kbGVDbGljayxcbiAgICAgIGhhbmRsZUNvbnRleHRNZW51LFxuICAgICAgaGFuZGxlUG9pbnRlclVwLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYXJyb3dQbGFjZW1lbnRDb3JyZWN0aW9uID0gZ2V0QXJyb3dQbGFjZW1lbnRDb3JyZWN0aW9uKGZsb2F0aW5nUGxhY2VtZW50LCByZWZzLCBhbGlnbik7XG5cbiAgICBjb25zdCByZW5kZXJGbG9hdGluZ0VsZW1lbnQgPSAoKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgcmVmPXtyZWZzLnNldEZsb2F0aW5nfVxuICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgZ2V0QmFzZVRvb2x0aXBGbG9hdGluZ1dyYXBwZXJTdHlsZShmbG9hdGluZ1BsYWNlbWVudCwgd2l0aEFycm93LCBpc09wZW4pLFxuICAgICAgICAgICAgc3R5bGVzPy5mbG9hdGluZ1dyYXBwZXI/Lih0aGVtZSksXG4gICAgICAgICAgXX1cbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgLi4uZmxvYXRpbmdTdHlsZXMsXG4gICAgICAgICAgICB3aWR0aDogIWN1cnJlbnRUcmFuc2Zvcm0gPyBcIm1heC1jb250ZW50XCIgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB6SW5kZXgsXG4gICAgICAgICAgfX1cbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgPlxuICAgICAgICAgIHtmbG9hdGluZ0VsZW1lbnR9XG4gICAgICAgICAge3dpdGhBcnJvdyAmJiAoXG4gICAgICAgICAgICA8RmxvYXRpbmdBcnJvd1xuICAgICAgICAgICAgICByZWY9e3NldEFycm93UmVmfVxuICAgICAgICAgICAgICBjb250ZXh0PXtjb250ZXh0fVxuICAgICAgICAgICAgICB3aWR0aD17QVJST1dfV0lEVEh9XG4gICAgICAgICAgICAgIGhlaWdodD17QVJST1dfSEVJR0hUfVxuICAgICAgICAgICAgICBmaWxsPXthcnJvd0NvbG9yfVxuICAgICAgICAgICAgICBzdHlsZT17YXJyb3dQbGFjZW1lbnRDb3JyZWN0aW9ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNoaWxkcmVuV2l0aFByb3BzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXdpdGhvdXRXcmFwcGVyKSB7XG4gICAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICAgIH1cblxuICAgICAgbGV0IGFkZGVkUHJvcHNDb3VudGVyID0gMDtcblxuICAgICAgcmV0dXJuIFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChhZGRlZFByb3BzQ291bnRlciA+IDAgfHwgIVJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGFkZGVkUHJvcHNDb3VudGVyICs9IDE7XG5cbiAgICAgICAgY29uc3Qgc2V0UmVmID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgICAgIHNldFRhcmdldFJlZihlbGVtZW50KTtcblxuICAgICAgICAgIGlmICh3aXRoUmVmKGNoaWxkKSkge1xuICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24oY2hpbGQ/LnJlZikpIHtcbiAgICAgICAgICAgICAgY2hpbGQucmVmKGVsZW1lbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgKGNoaWxkLnJlZiBhcyBNdXRhYmxlUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgbnVsbD4pLmN1cnJlbnQgPSBlbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgLi4uY2hpbGQucHJvcHMsXG4gICAgICAgICAgcmVmOiBzZXRSZWYsXG4gICAgICAgICAgb25Qb2ludGVyRW50ZXI6IGhhbmRsZVBvaW50ZXJFbnRlciA/PyBjaGlsZD8ucHJvcHM/Lm9uUG9pbnRlckVudGVyLFxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlOiBoYW5kbGVQb2ludGVyTGVhdmUgPz8gY2hpbGQ/LnByb3BzPy5vblBvaW50ZXJMZWF2ZSxcbiAgICAgICAgICBvbkZvY3VzOiBoYW5kbGVGb2N1cyA/PyBjaGlsZD8ucHJvcHM/Lm9uRm9jdXMsXG4gICAgICAgICAgb25CbHVyOiBoYW5kbGVCbHVyID8/IGNoaWxkPy5wcm9wcz8ub25CbHVyLFxuICAgICAgICAgIG9uQ2xpY2s6IGhhbmRsZUNsaWNrID8/IGNoaWxkPy5wcm9wcz8ub25DbGljayxcbiAgICAgICAgICBvbkNvbnRleHRNZW51OiBoYW5kbGVDb250ZXh0TWVudSA/PyBjaGlsZD8ucHJvcHM/Lm9uQ29udGV4dE1lbnUsXG4gICAgICAgICAgb25Qb2ludGVyVXA6IGhhbmRsZVBvaW50ZXJVcCA/PyBjaGlsZD8ucHJvcHM/Lm9uUG9pbnRlclVwLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sIFtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgaGFuZGxlQmx1cixcbiAgICAgIGhhbmRsZUNsaWNrLFxuICAgICAgaGFuZGxlQ29udGV4dE1lbnUsXG4gICAgICBoYW5kbGVGb2N1cyxcbiAgICAgIGhhbmRsZVBvaW50ZXJFbnRlcixcbiAgICAgIGhhbmRsZVBvaW50ZXJMZWF2ZSxcbiAgICAgIGhhbmRsZVBvaW50ZXJVcCxcbiAgICAgIHNldFRhcmdldFJlZixcbiAgICAgIHdpdGhvdXRXcmFwcGVyLFxuICAgIF0pO1xuXG4gICAgY29uc3QgZ2V0RmxvYXRpbmdFbGVtZW50ID0gKCkgPT4ge1xuICAgICAgaWYgKCFpc09wZW4gJiYgIXNob3dJbkN1cnNvclBvc2l0aW9uKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY3JlYXRlUG9ydGFsKFxuICAgICAgICByZW5kZXJGbG9hdGluZ0VsZW1lbnQoKSxcbiAgICAgICAgZ2V0UG9wdXBDb250YWluZXIocmVmcy5kb21SZWZlcmVuY2UuY3VycmVudCA/PyBkb2N1bWVudC5ib2R5KVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgaWYgKGlzTmlsKGdldFRhcmdldERPTU5vZGUpICYmIGlzTmlsKGNoaWxkcmVuKSAmJiBpc1VuZGVmaW5lZChvcGVuKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGlzRnVuY3Rpb24oZ2V0VGFyZ2V0RE9NTm9kZSkpIHtcbiAgICAgIGlmIChpc051bGwoZ2V0VGFyZ2V0RE9NTm9kZSgpKSkge1xuICAgICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgIHtnZXRGbG9hdGluZ0VsZW1lbnQoKX1cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh3aXRob3V0V3JhcHBlcikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7Y2hpbGRyZW5XaXRoUHJvcHN9XG4gICAgICAgICAge2dldEZsb2F0aW5nRWxlbWVudCgpfVxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPXtzZXRUYXJnZXRSZWZ9XG4gICAgICAgIGNzcz17W2Jhc2VUb29sdGlwUmVmZXJlbmNlV3JhcHBlclN0eWxlLCBzdHlsZXM/LnJlZmVyZW5jZVdyYXBwZXI/Lih0aGVtZSldfVxuICAgICAgICBvblBvaW50ZXJFbnRlcj17aGFuZGxlUG9pbnRlckVudGVyfVxuICAgICAgICBvblBvaW50ZXJMZWF2ZT17aGFuZGxlUG9pbnRlckxlYXZlfVxuICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgICAgb25Db250ZXh0TWVudT17aGFuZGxlQ29udGV4dE1lbnV9XG4gICAgICAgIG9uUG9pbnRlclVwPXtoYW5kbGVQb2ludGVyVXB9XG4gICAgICAgIG9uUG9pbnRlckRvd249eyhlKSA9PiB7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgICB7Z2V0RmxvYXRpbmdFbGVtZW50KCl9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG4pO1xuIl19 */"], onPointerEnter: handlePointerEnter, onPointerLeave: handlePointerLeave, onFocus: handleFocus, onBlur: handleBlur, onClick: handleClick, onContextMenu: handleContextMenu, onPointerUp: handlePointerUp, onPointerDown: (e) => {
159
+ e.stopPropagation();
160
+ }, children: [
147
161
  children,
148
162
  getFloatingElement()
149
163
  ] });
@@ -37,6 +37,7 @@ export interface BaseTooltipProps {
37
37
  };
38
38
  getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
39
39
  onOpenChange?: (open: boolean) => void;
40
+ onContextMenu?: (event: MouseEventType) => void;
40
41
  }
41
42
  export type AutoUpdateType = (reference: ReferenceElement, floating: FloatingElement, update: () => void) => () => void;
42
43
  export type PointerEventType = PointerEvent<HTMLDivElement> | globalThis.PointerEvent;
@@ -1,6 +1,6 @@
1
1
  import { ExtendedRefs, Placement, Rect, ReferenceType } from '@floating-ui/react';
2
2
  import { BaseTooltipAlign, BaseTooltipPlacementType, MouseEventType, OffsetType, PointerEventType } from './BaseTooltip.types';
3
- import { ReactNode } from 'react';
3
+ import { ReactHTMLElement, ReactNode } from 'react';
4
4
  export declare const ARROW_WIDTH = 8;
5
5
  export declare const ARROW_HEIGHT = 4;
6
6
  export declare const ARROW_PADDING = 6;
@@ -15,6 +15,7 @@ export declare const isLeftSide: (placement: Placement) => boolean;
15
15
  export declare const isRightSide: (placement: Placement) => boolean;
16
16
  export declare const convertBaseTooltipPlacement: (placement: BaseTooltipPlacementType) => Placement;
17
17
  export declare const convertOffsetValues: (rect: Rect) => (element: OffsetType, index: number) => number;
18
+ export declare const setContextMenuPosition: (refs: ExtendedRefs<ReferenceType>, e: MouseEventType) => void;
18
19
  export declare const getChangedProperties: (e: PointerEventType | MouseEventType, placement: Placement) => {
19
20
  width: number;
20
21
  x: number;
@@ -36,3 +37,4 @@ export declare const getChangedProperties: (e: PointerEventType | MouseEventType
36
37
  };
37
38
  export declare const setNewReferencePosition: (refs: ExtendedRefs<ReferenceType>, pointerEvent: PointerEventType | MouseEventType, placement: Placement, arrowRef: SVGSVGElement | null) => void;
38
39
  export declare const setTargetCallbacks: (element: HTMLElement, handlePointerEnter: ((e: PointerEventType) => void) | undefined, handlePointerLeave: (() => void) | undefined, handleFocus: (() => void) | undefined, handleBlur: (() => void) | undefined, handleClick: ((e: MouseEventType) => void) | undefined, handleContextMenu: ((e: MouseEventType) => void) | undefined, handlePointerUp: ((e: MouseEventType) => void) | undefined) => void;
40
+ export declare const withRef: (child: unknown) => child is ReactHTMLElement<HTMLElement>;
@@ -1,5 +1,5 @@
1
1
  import { computePosition, flip } from "@floating-ui/react";
2
- import { isNil, isUndefined, isNumber } from "lodash-es";
2
+ import { isNil, isUndefined, isNumber, isObject, isNull, isString } from "lodash-es";
3
3
  import { FLOATING_OFFSET } from "../../utils/consts.js";
4
4
  const ARROW_WIDTH = 8;
5
5
  const ARROW_HEIGHT = 4;
@@ -110,6 +110,22 @@ const convertOffsetValues = (rect) => (element, index) => {
110
110
  const elementSize = index === 0 ? rect.width : rect.height;
111
111
  return elementSize / 100 * percentValue;
112
112
  };
113
+ const setContextMenuPosition = (refs, e) => {
114
+ refs.setPositionReference({
115
+ getBoundingClientRect() {
116
+ return {
117
+ width: 0,
118
+ height: 0,
119
+ x: e.clientX,
120
+ y: e.clientY,
121
+ top: e.clientY,
122
+ right: e.clientX,
123
+ bottom: e.clientY,
124
+ left: e.clientX
125
+ };
126
+ }
127
+ });
128
+ };
113
129
  const getChangedProperties = (e, placement) => {
114
130
  if (isLeftCorrection(placement)) {
115
131
  return {
@@ -181,6 +197,18 @@ const setTargetCallbacks = (element, handlePointerEnter, handlePointerLeave, han
181
197
  element.oncontextmenu = handleContextMenu ?? (element == null ? void 0 : element.oncontextmenu);
182
198
  element.onpointerup = handlePointerUp ?? (element == null ? void 0 : element.onpointerup);
183
199
  };
200
+ const withRef = (child) => {
201
+ if (!isObject(child) || isNull(child)) {
202
+ return false;
203
+ }
204
+ if (!("ref" in child) || isNil(child.ref)) {
205
+ return false;
206
+ }
207
+ if (isString(child.ref)) {
208
+ return false;
209
+ }
210
+ return true;
211
+ };
184
212
  export {
185
213
  ARROW_HEIGHT,
186
214
  ARROW_PADDING,
@@ -196,7 +224,9 @@ export {
196
224
  isLeftSide,
197
225
  isRightSide,
198
226
  isTopSide,
227
+ setContextMenuPosition,
199
228
  setNewReferencePosition,
200
229
  setTargetCallbacks,
201
- singleSides
230
+ singleSides,
231
+ withRef
202
232
  };
@@ -1,5 +1,5 @@
1
1
  import { useState, useEffect } from "react";
2
- import { singleSides, convertOffsetValues, ARROW_PADDING, convertBaseTooltipPlacement, isLeftSide, isRightSide } from "../BaseTooltip.utils.js";
2
+ import { singleSides, ARROW_PADDING, convertBaseTooltipPlacement, isLeftSide, isRightSide, convertOffsetValues } from "../BaseTooltip.utils.js";
3
3
  import { flip, shift, offset, arrow, useFloating, autoUpdate } from "@floating-ui/react";
4
4
  import { isUndefined } from "lodash-es";
5
5
  const floatingMiddleware = [];
@@ -31,7 +31,7 @@ const useCustomFloating = ({
31
31
  mainAxis: singleSides.includes(convertedPlacement)
32
32
  });
33
33
  }, [convertedPlacement]);
34
- const offsetResult = offset(({
34
+ const offsetCallback = ({
35
35
  rects
36
36
  }) => {
37
37
  var _a2, _b2;
@@ -46,7 +46,8 @@ const useCustomFloating = ({
46
46
  mainAxis,
47
47
  crossAxis
48
48
  };
49
- }, [convertedPlacement]);
49
+ };
50
+ const offsetResult = offset(offsetCallback, [offsetCallback]);
50
51
  floatingMiddleware[0] = offsetResult;
51
52
  useEffect(() => {
52
53
  if (arrowRef && withArrow) {
@@ -64,7 +65,7 @@ const useCustomFloating = ({
64
65
  } = useFloating({
65
66
  whileElementsMounted: autoUpdate,
66
67
  placement: convertBaseTooltipPlacement(placement),
67
- middleware: floatingMiddleware,
68
+ middleware: [...floatingMiddleware],
68
69
  transform
69
70
  });
70
71
  return {
@@ -10,9 +10,10 @@ export interface UseShowTooltipControllerProp {
10
10
  placement: Placement;
11
11
  refs: ExtendedRefs<ReferenceType>;
12
12
  onOpenChange: ((open: boolean) => void) | undefined;
13
+ onContextMenu: ((event: MouseEventType) => void) | undefined;
13
14
  arrowRef: SVGSVGElement | null;
14
15
  }
15
- export declare const useShowTooltipController: ({ trigger, defaultOpen, open, mouseEnterDelay, mouseLeaveDelay, showInCursorPosition, refs, placement, onOpenChange, arrowRef, }: UseShowTooltipControllerProp) => {
16
+ export declare const useShowTooltipController: ({ trigger, defaultOpen, open, mouseEnterDelay, mouseLeaveDelay, showInCursorPosition, refs, placement, onOpenChange, onContextMenu, arrowRef, }: UseShowTooltipControllerProp) => {
16
17
  isOpen: boolean;
17
18
  handlePointerEnter: ((e: PointerEventType) => void) | undefined;
18
19
  handlePointerLeave: (() => void) | undefined;
@@ -2,7 +2,7 @@ import { useState, useRef, useEffect, useCallback, useMemo } from "react";
2
2
  import { isUndefined } from "lodash-es";
3
3
  import { convertSecondsToMilliseconds } from "../../../utils/converters.js";
4
4
  import "@floating-ui/react";
5
- import { setNewReferencePosition } from "../BaseTooltip.utils.js";
5
+ import { setNewReferencePosition, setContextMenuPosition } from "../BaseTooltip.utils.js";
6
6
  const useShowTooltipController = ({
7
7
  trigger,
8
8
  defaultOpen,
@@ -13,6 +13,7 @@ const useShowTooltipController = ({
13
13
  refs,
14
14
  placement,
15
15
  onOpenChange,
16
+ onContextMenu,
16
17
  arrowRef
17
18
  }) => {
18
19
  const [isOpen, setIsOpen] = useState(defaultOpen);
@@ -20,20 +21,37 @@ const useShowTooltipController = ({
20
21
  useEffect(() => {
21
22
  setIsOpen(defaultOpen);
22
23
  }, [defaultOpen, open]);
24
+ const isOpenResult = open ?? isOpen;
25
+ const closeTooltip = useCallback(() => {
26
+ setIsOpen(false);
27
+ onOpenChange == null ? void 0 : onOpenChange(false);
28
+ }, [onOpenChange]);
29
+ const handleMouseUp = useCallback((e) => {
30
+ var _a, _b;
31
+ if (!e.target) {
32
+ return;
33
+ }
34
+ const isFloatingElement = (_a = refs.floating.current) == null ? void 0 : _a.contains(e.target);
35
+ const isReferenceElement = (_b = refs.domReference.current) == null ? void 0 : _b.contains(e.target);
36
+ if (isFloatingElement || isReferenceElement) {
37
+ return;
38
+ }
39
+ closeTooltip();
40
+ document.body.removeEventListener("mouseup", handleMouseUp);
41
+ }, [closeTooltip, refs.domReference, refs.floating]);
23
42
  const showTooltip = useCallback(() => {
24
43
  if (isUndefined(open)) {
44
+ document.body.addEventListener("mouseup", handleMouseUp);
25
45
  setIsOpen(true);
26
46
  }
27
47
  if (open !== true && isOpen !== true) {
28
48
  onOpenChange == null ? void 0 : onOpenChange(true);
29
49
  }
30
- }, [isOpen, onOpenChange, open]);
50
+ }, [handleMouseUp, isOpen, onOpenChange, open]);
31
51
  const hideTooltip = useCallback(() => {
32
- if (isUndefined(open)) {
33
- setIsOpen(false);
34
- }
35
- onOpenChange == null ? void 0 : onOpenChange(false);
36
- }, [onOpenChange, open]);
52
+ closeTooltip();
53
+ document.body.removeEventListener("mouseup", handleMouseUp);
54
+ }, [closeTooltip, handleMouseUp, open]);
37
55
  const handlePointerEnter = useMemo(() => {
38
56
  if (!trigger.includes("hover")) {
39
57
  return;
@@ -82,6 +100,9 @@ const useShowTooltipController = ({
82
100
  return (e) => {
83
101
  var _a;
84
102
  e.stopPropagation();
103
+ if (trigger.includes("contextMenu")) {
104
+ setContextMenuPosition(refs, e);
105
+ }
85
106
  const isReferenceElement = (_a = refs.domReference.current) == null ? void 0 : _a.contains(e.target);
86
107
  if (!isReferenceElement) {
87
108
  return;
@@ -90,62 +111,55 @@ const useShowTooltipController = ({
90
111
  setNewReferencePosition(refs, e, placement, arrowRef);
91
112
  }
92
113
  if (isUndefined(open)) {
93
- setIsOpen((prev) => !prev);
94
- onOpenChange == null ? void 0 : onOpenChange(isOpen);
114
+ if (isOpen) {
115
+ hideTooltip();
116
+ } else {
117
+ showTooltip();
118
+ }
95
119
  } else {
96
120
  onOpenChange == null ? void 0 : onOpenChange(!open);
97
121
  }
98
122
  };
99
- }, [arrowRef, isOpen, onOpenChange, open, placement, refs, showInCursorPosition, trigger]);
123
+ }, [arrowRef, hideTooltip, isOpen, onOpenChange, open, placement, refs, showInCursorPosition, showTooltip, trigger]);
100
124
  const handleContextMenu = useMemo(() => {
101
125
  if (!trigger.includes("contextMenu")) {
102
126
  return void 0;
103
127
  }
104
128
  return (e) => {
129
+ setContextMenuPosition(refs, e);
130
+ if (onContextMenu) {
131
+ onContextMenu(e);
132
+ return;
133
+ }
105
134
  e.preventDefault();
106
- refs.setPositionReference({
107
- getBoundingClientRect() {
108
- return {
109
- width: 0,
110
- height: 0,
111
- x: e.clientX,
112
- y: e.clientY,
113
- top: e.clientY,
114
- right: e.clientX,
115
- bottom: e.clientY,
116
- left: e.clientX
117
- };
118
- }
119
- });
120
135
  showTooltip();
121
136
  };
122
- }, [refs, showTooltip, trigger]);
123
- const handleMouseUp = useCallback((e) => {
124
- var _a, _b;
125
- if (!e.target) {
126
- return;
127
- }
128
- const isFloatingElement = (_a = refs.floating.current) == null ? void 0 : _a.contains(e.target);
129
- const isReferenceElement = (_b = refs.domReference.current) == null ? void 0 : _b.contains(e.target);
130
- if (!isOpen || isFloatingElement || isReferenceElement) {
131
- return;
132
- }
133
- hideTooltip();
134
- }, [hideTooltip, isOpen, refs.domReference, refs.floating]);
137
+ }, [onContextMenu, refs, showTooltip, trigger]);
135
138
  useEffect(() => {
136
- document.body.addEventListener("mouseup", handleMouseUp);
137
- return () => document.body.removeEventListener("mouseup", handleMouseUp);
139
+ return () => {
140
+ document.body.removeEventListener("mouseup", handleMouseUp);
141
+ };
138
142
  }, [handleMouseUp]);
143
+ useEffect(() => {
144
+ if (open) {
145
+ document.body.addEventListener("mouseup", handleMouseUp);
146
+ }
147
+ if (open === false) {
148
+ document.body.removeEventListener("mouseup", handleMouseUp);
149
+ }
150
+ }, [handleMouseUp, open]);
139
151
  const handlePointerUp = useMemo(() => {
140
152
  if (!trigger.includes("click")) {
141
153
  return void 0;
142
154
  }
143
155
  return (e) => {
144
- e.stopPropagation();
156
+ if (isOpenResult) {
157
+ e.stopPropagation();
158
+ }
145
159
  };
146
- }, [trigger]);
160
+ }, [isOpenResult, trigger]);
147
161
  return {
148
- isOpen: open ?? isOpen,
162
+ isOpen: isOpenResult,
149
163
  handlePointerEnter,
150
164
  handlePointerLeave,
151
165
  handleFocus,
@@ -18,6 +18,8 @@ const DropdownComponent = memo(({
18
18
  menuPlaceholder,
19
19
  emptySearchPlaceholder,
20
20
  open,
21
+ styles,
22
+ className,
21
23
  placement = "bottomLeft",
22
24
  trigger = ["click"],
23
25
  dropdownRender,
@@ -28,8 +30,9 @@ const DropdownComponent = memo(({
28
30
  const [isOpen, setIsOpen] = useState(open ?? (disabled ? false : void 0));
29
31
  const closeDropdown = useCallback(() => {
30
32
  setIsOpen(false);
33
+ onOpenChange == null ? void 0 : onOpenChange(false);
31
34
  setTimeout(() => setIsOpen(void 0));
32
- }, []);
35
+ }, [onOpenChange]);
33
36
  const subMenusController = useSubMenusController();
34
37
  const selectedKeysController = useSelectedKeysController({
35
38
  defaultSelectedKeys: menu == null ? void 0 : menu.defaultSelectedKeys,
@@ -37,8 +40,8 @@ const DropdownComponent = memo(({
37
40
  multiple: (menu == null ? void 0 : menu.multiple) ?? true,
38
41
  selectable: (menu == null ? void 0 : menu.selectable) ?? false,
39
42
  onClick: menu == null ? void 0 : menu.onClick,
40
- onDeselect: menu == null ? void 0 : menu.onClick,
41
- onSelect: menu == null ? void 0 : menu.onClick
43
+ onDeselect: menu == null ? void 0 : menu.onDeselect,
44
+ onSelect: menu == null ? void 0 : menu.onSelect
42
45
  });
43
46
  const {
44
47
  currentStep,
@@ -46,12 +49,15 @@ const DropdownComponent = memo(({
46
49
  returnToPrevStep,
47
50
  resetSteps
48
51
  } = useStepSubMenus();
49
- const handleOpenChange = (open2) => {
52
+ const {
53
+ closeAllSubMenus
54
+ } = subMenusController;
55
+ const handleOpenChange = useCallback((open2) => {
50
56
  resetSteps();
51
- subMenusController.closeAllSubMenus();
52
57
  onOpenChange == null ? void 0 : onOpenChange(open2);
53
- };
54
- const menuElement = (menu == null ? void 0 : menu.subMenuOpen) === "overflow" ? /* @__PURE__ */ jsx(Menu, { ...menu, items, withSearch: !!(menu == null ? void 0 : menu.search), menuPlaceholder, emptySearchPlaceholder }) : /* @__PURE__ */ jsx(Menu, { ...menu, items: (currentStep == null ? void 0 : currentStep.children) ?? items, title: currentStep == null ? void 0 : currentStep.label, withSearch: !!(menu == null ? void 0 : menu.search), menuPlaceholder, emptySearchPlaceholder });
58
+ closeAllSubMenus();
59
+ }, [closeAllSubMenus, onOpenChange, resetSteps]);
60
+ const menuElement = (menu == null ? void 0 : menu.subMenuOpen) === "overflow" ? /* @__PURE__ */ jsx(Menu, { ...menu, items, search: !!(menu == null ? void 0 : menu.search), menuPlaceholder, emptySearchPlaceholder }) : /* @__PURE__ */ jsx(Menu, { ...menu, items: (currentStep == null ? void 0 : currentStep.children) ?? items, title: currentStep == null ? void 0 : currentStep.label, search: !!(menu == null ? void 0 : menu.search), menuPlaceholder, emptySearchPlaceholder });
55
61
  const floatingElement = isFunction(dropdownRender) ? dropdownRender(menuElement) : menuElement;
56
62
  const providerValue = {
57
63
  ...menu,
@@ -71,7 +77,7 @@ const DropdownComponent = memo(({
71
77
  returnToPrevStep,
72
78
  closeDropdown
73
79
  };
74
- return /* @__PURE__ */ jsx(dropdownContext.Provider, { value: providerValue, children: /* @__PURE__ */ jsx(BaseTooltip, { ...baseProps, open: isOpen, placement, trigger, floatingElement, withArrow: false, onOpenChange: handleOpenChange, children }) });
80
+ return /* @__PURE__ */ jsx(dropdownContext.Provider, { value: providerValue, children: /* @__PURE__ */ jsx(BaseTooltip, { ...baseProps, open: open ?? isOpen, placement, trigger, floatingElement, withArrow: false, onOpenChange: handleOpenChange, styles, className: `ui-kit-dropdown ${className}`, children }) });
75
81
  });
76
82
  const Dropdown = withThemeProvider(DropdownComponent);
77
83
  export {
@@ -1,19 +1,20 @@
1
1
  import { BaseTooltipProps } from '../BaseTooltip/BaseTooltip.types';
2
- import { MouseEvent, ReactNode } from 'react';
3
- import { Theme } from '../../themes';
2
+ import { MouseEvent, PropsWithChildren, ReactNode } from 'react';
4
3
  import { DropdownSubMenuTrigger } from './components/SubMenu/SubMenu.types';
4
+ import { Theme } from 'themes';
5
5
  import { Interpolation } from '@emotion/react';
6
6
  type ExcludedFields = "floatingElement" | "arrowColor" | "withArrow" | "defaultOpen" | "mouseEnterDelay" | "mouseLeaveDelay" | "trigger" | "placement";
7
7
  export type DropdownPlacement = "bottom" | "bottomLeft" | "bottomRight" | "top" | "topLeft" | "topRight";
8
8
  export type DropdownTrigger = "click" | "hover" | "contextMenu";
9
- export type ItemType = MenuItem | GroupType | Divider | SubMenuType;
9
+ export type ItemType = MenuItem | GroupType | DividerType | SubMenuType;
10
+ export type DropdownItemKeyType = string | number;
10
11
  export interface DropdownMenu {
11
12
  items: ItemType[];
12
13
  inlineIndent?: number;
13
14
  selectable?: boolean;
14
15
  multiple?: boolean;
15
- defaultSelectedKeys?: string[];
16
- selectedKeys?: string[];
16
+ defaultSelectedKeys?: DropdownItemKeyType[];
17
+ selectedKeys?: DropdownItemKeyType[];
17
18
  menuPlaceholder?: ReactNode;
18
19
  emptySearchPlaceholder?: ReactNode;
19
20
  search?: boolean;
@@ -22,27 +23,33 @@ export interface DropdownMenu {
22
23
  subMenuOpenDelay?: number;
23
24
  forceSubMenuRender?: boolean;
24
25
  triggerSubMenuAction?: DropdownSubMenuTrigger;
26
+ "test-id"?: string;
25
27
  styles?: {
26
- wrapper: (theme: Theme) => Interpolation;
28
+ wrapper?: (theme: Theme) => Interpolation;
29
+ titleBlock?: (theme: Theme) => Interpolation;
30
+ backIcon?: (theme: Theme) => Interpolation;
31
+ titleText?: (theme: Theme) => Interpolation;
32
+ searchBlock?: (theme?: Theme) => Interpolation;
33
+ emptyContentStyle?: (theme?: Theme) => Interpolation;
27
34
  };
28
35
  onClick?: (props: {
29
36
  item: ItemType;
30
- key: string;
37
+ key: DropdownItemKeyType;
31
38
  e: MouseEvent;
32
39
  }) => void;
33
40
  onSelect?: (props: {
34
41
  item: ItemType;
35
- key: string;
42
+ key: DropdownItemKeyType;
36
43
  e: MouseEvent;
37
44
  }) => void;
38
45
  onDeselect?: (props: {
39
46
  item: ItemType;
40
- key: string;
47
+ key: DropdownItemKeyType;
41
48
  e: MouseEvent;
42
49
  }) => void;
43
- onOpenChange?: (openKeys: string[]) => void;
50
+ onOpenChange?: (openKeys: DropdownItemKeyType[]) => void;
44
51
  }
45
- export interface DropdownProps extends Omit<BaseTooltipProps, ExcludedFields> {
52
+ export interface DropdownProps extends PropsWithChildren<Omit<BaseTooltipProps, ExcludedFields>> {
46
53
  menu?: DropdownMenu;
47
54
  autoFocus?: boolean;
48
55
  disabled?: boolean;
@@ -61,38 +68,68 @@ export interface MenuItem {
61
68
  disabled?: boolean;
62
69
  extra?: ReactNode;
63
70
  icon?: ReactNode;
64
- key: string;
71
+ key: DropdownItemKeyType;
65
72
  label?: ReactNode;
73
+ "test-id"?: string;
74
+ styles?: {
75
+ wrapper?: (theme: Theme) => Interpolation;
76
+ content?: (theme: Theme) => Interpolation;
77
+ iconWrapper?: (theme: Theme) => Interpolation;
78
+ itemLabel?: (theme: Theme) => Interpolation;
79
+ arrowIconWrapper?: (theme: Theme) => Interpolation;
80
+ extraText?: (theme: Theme) => Interpolation;
81
+ };
82
+ onClick?: (e: MouseEvent) => void | Promise<void>;
66
83
  }
67
84
  export interface GroupType {
68
85
  type: "group";
69
86
  children: ItemType[];
70
87
  label?: ReactNode;
71
88
  icon?: ReactNode;
72
- key?: string;
89
+ key: DropdownItemKeyType;
90
+ "test-id"?: string;
91
+ styles?: {
92
+ wrapper?: (theme: Theme) => Interpolation;
93
+ labelWrapper?: (theme: Theme) => Interpolation;
94
+ iconWrapper?: (theme: Theme) => Interpolation;
95
+ itemLabel?: (theme: Theme) => Interpolation;
96
+ items?: (theme: Theme) => Interpolation;
97
+ };
73
98
  }
74
- export interface Divider {
99
+ export interface DividerType {
75
100
  type: "divider";
101
+ "test-id"?: string;
102
+ key?: DropdownItemKeyType;
103
+ styles?: {
104
+ wrapper?: (theme: Theme) => Interpolation;
105
+ };
76
106
  }
77
107
  export interface GetMenuBySchemaParams {
78
108
  schema: ItemType[];
79
- selectedKeys: string[];
80
- onClick: (itemKey: string, item: ItemType, e: MouseEvent) => void;
109
+ selectedKeys: DropdownItemKeyType[];
110
+ onClick: (props: {
111
+ item: ItemType;
112
+ itemKey: DropdownItemKeyType;
113
+ e: MouseEvent;
114
+ }) => void;
81
115
  clearSearchValue: () => void;
82
116
  }
83
117
  export interface SubMenuType {
84
118
  children: ItemType[];
85
119
  disabled?: boolean;
86
120
  icon?: ReactNode;
87
- key: string;
121
+ key: DropdownItemKeyType;
88
122
  label?: ReactNode;
123
+ "test-id"?: string;
124
+ search?: boolean;
125
+ styles?: DropdownMenu["styles"];
89
126
  onClick?: ({ key, e }: {
90
- key: string;
127
+ key: DropdownItemKeyType;
91
128
  e: MouseEvent;
92
129
  }) => void;
93
130
  }
94
131
  export declare const isSubMenu: (item: ItemType) => item is SubMenuType;
95
132
  export declare const isMenuItem: (item: ItemType) => item is MenuItem;
96
133
  export declare const isGroupType: (item: ItemType) => item is GroupType;
97
- export declare const isDivider: (item: ItemType) => item is Divider;
134
+ export declare const isDivider: (item: ItemType) => item is DividerType;
98
135
  export {};