@lobehub/ui 3.3.5 → 3.4.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.
@@ -19,7 +19,7 @@ import { antdPlacementToFloating } from "./antdPlacementToFloating";
19
19
  import { composeEventHandlers } from "../utils/composeEventHandlers";
20
20
  import TooltipFloating from "./TooltipFloating";
21
21
  import TooltipPortal from "./TooltipPortal";
22
- import { TooltipGroupContext } from "./groupContext";
22
+ import { TooltipGroupApiContext, TooltipGroupPropsContext } from "./groupContext";
23
23
  import { jsx as _jsx } from "react/jsx-runtime";
24
24
  import { Fragment as _Fragment } from "react/jsx-runtime";
25
25
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -27,50 +27,71 @@ var TooltipInGroup = function TooltipInGroup(_ref) {
27
27
  var ref = _ref.ref,
28
28
  hotkey = _ref.hotkey,
29
29
  className = _ref.className,
30
- _ref$arrow = _ref.arrow,
31
- arrow = _ref$arrow === void 0 ? false : _ref$arrow,
30
+ arrow = _ref.arrow,
32
31
  title = _ref.title,
33
32
  hotkeyProps = _ref.hotkeyProps,
34
33
  children = _ref.children,
35
- _ref$placement = _ref.placement,
36
- placement = _ref$placement === void 0 ? 'top' : _ref$placement,
34
+ placement = _ref.placement,
37
35
  openDelay = _ref.openDelay,
38
36
  closeDelay = _ref.closeDelay,
39
- _ref$mouseEnterDelay = _ref.mouseEnterDelay,
40
- mouseEnterDelay = _ref$mouseEnterDelay === void 0 ? 0 : _ref$mouseEnterDelay,
41
- _ref$mouseLeaveDelay = _ref.mouseLeaveDelay,
42
- mouseLeaveDelay = _ref$mouseLeaveDelay === void 0 ? 0 : _ref$mouseLeaveDelay,
37
+ mouseEnterDelay = _ref.mouseEnterDelay,
38
+ mouseLeaveDelay = _ref.mouseLeaveDelay,
43
39
  onOpenChange = _ref.onOpenChange,
44
40
  disabled = _ref.disabled,
45
41
  classNames = _ref.classNames,
46
42
  styleProps = _ref.styles,
47
43
  zIndex = _ref.zIndex,
48
- _ref$portalled = _ref.portalled,
49
- portalled = _ref$portalled === void 0 ? true : _ref$portalled,
44
+ portalled = _ref.portalled,
50
45
  getPopupContainer = _ref.getPopupContainer;
51
- var group = useContext(TooltipGroupContext);
46
+ var group = useContext(TooltipGroupApiContext);
47
+ var sharedProps = useContext(TooltipGroupPropsContext);
52
48
  var triggerElRef = useRef(null);
49
+ var mergedClassName = useMemo(function () {
50
+ if (!(sharedProps !== null && sharedProps !== void 0 && sharedProps.className) && !className) return undefined;
51
+ return [sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.className, className].filter(Boolean).join(' ');
52
+ }, [className, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.className]);
53
+ var mergedClassNames = useMemo(function () {
54
+ if (!(sharedProps !== null && sharedProps !== void 0 && sharedProps.classNames) && !classNames) return undefined;
55
+ return _objectSpread(_objectSpread({}, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.classNames), classNames);
56
+ }, [classNames, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.classNames]);
57
+ var mergedStyles = useMemo(function () {
58
+ if (!(sharedProps !== null && sharedProps !== void 0 && sharedProps.styles) && !styleProps) return undefined;
59
+ return _objectSpread(_objectSpread({}, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.styles), styleProps);
60
+ }, [sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.styles, styleProps]);
61
+ var mergedHotkeyProps = useMemo(function () {
62
+ if (!(sharedProps !== null && sharedProps !== void 0 && sharedProps.hotkeyProps) && !hotkeyProps) return undefined;
63
+ return _objectSpread(_objectSpread({}, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.hotkeyProps), hotkeyProps);
64
+ }, [hotkeyProps, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.hotkeyProps]);
65
+ var mergedOnOpenChange = useMemo(function () {
66
+ if (!(sharedProps !== null && sharedProps !== void 0 && sharedProps.onOpenChange) && !onOpenChange) return undefined;
67
+ return function (open) {
68
+ var _sharedProps$onOpenCh;
69
+ sharedProps === null || sharedProps === void 0 || (_sharedProps$onOpenCh = sharedProps.onOpenChange) === null || _sharedProps$onOpenCh === void 0 || _sharedProps$onOpenCh.call(sharedProps, open);
70
+ onOpenChange === null || onOpenChange === void 0 || onOpenChange(open);
71
+ };
72
+ }, [onOpenChange, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.onOpenChange]);
53
73
  var item = useMemo(function () {
74
+ var _ref2, _ref3;
54
75
  return {
55
- arrow: arrow,
56
- className: className,
57
- classNames: classNames,
58
- closeDelay: closeDelay,
59
- disabled: disabled,
60
- getPopupContainer: getPopupContainer,
61
- hotkey: hotkey,
62
- hotkeyProps: hotkeyProps,
63
- mouseEnterDelay: mouseEnterDelay,
64
- mouseLeaveDelay: mouseLeaveDelay,
65
- onOpenChange: onOpenChange,
66
- openDelay: openDelay,
67
- placement: placement,
68
- portalled: portalled,
69
- styles: styleProps,
76
+ arrow: (_ref2 = arrow !== null && arrow !== void 0 ? arrow : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.arrow) !== null && _ref2 !== void 0 ? _ref2 : false,
77
+ className: mergedClassName,
78
+ classNames: mergedClassNames,
79
+ closeDelay: closeDelay !== null && closeDelay !== void 0 ? closeDelay : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.closeDelay,
80
+ disabled: disabled !== null && disabled !== void 0 ? disabled : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.disabled,
81
+ getPopupContainer: getPopupContainer !== null && getPopupContainer !== void 0 ? getPopupContainer : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.getPopupContainer,
82
+ hotkey: hotkey !== null && hotkey !== void 0 ? hotkey : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.hotkey,
83
+ hotkeyProps: mergedHotkeyProps,
84
+ mouseEnterDelay: mouseEnterDelay !== null && mouseEnterDelay !== void 0 ? mouseEnterDelay : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.mouseEnterDelay,
85
+ mouseLeaveDelay: mouseLeaveDelay !== null && mouseLeaveDelay !== void 0 ? mouseLeaveDelay : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.mouseLeaveDelay,
86
+ onOpenChange: mergedOnOpenChange,
87
+ openDelay: openDelay !== null && openDelay !== void 0 ? openDelay : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.openDelay,
88
+ placement: (_ref3 = placement !== null && placement !== void 0 ? placement : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.placement) !== null && _ref3 !== void 0 ? _ref3 : 'top',
89
+ portalled: portalled !== null && portalled !== void 0 ? portalled : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.portalled,
90
+ styles: mergedStyles,
70
91
  title: title,
71
- zIndex: zIndex
92
+ zIndex: zIndex !== null && zIndex !== void 0 ? zIndex : sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.zIndex
72
93
  };
73
- }, [arrow, className, classNames, closeDelay, disabled, getPopupContainer, hotkey, hotkeyProps, mouseEnterDelay, mouseLeaveDelay, onOpenChange, openDelay, placement, portalled, styleProps, title, zIndex]);
94
+ }, [arrow, closeDelay, disabled, getPopupContainer, hotkey, mergedClassName, mergedClassNames, mergedHotkeyProps, mergedOnOpenChange, mergedStyles, mouseEnterDelay, mouseLeaveDelay, openDelay, placement, portalled, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.arrow, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.closeDelay, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.disabled, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.getPopupContainer, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.hotkey, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.mouseEnterDelay, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.mouseLeaveDelay, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.openDelay, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.placement, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.portalled, sharedProps === null || sharedProps === void 0 ? void 0 : sharedProps.zIndex, title, zIndex]);
74
95
  var trigger = useMemo(function () {
75
96
  var _children$props;
76
97
  if (! /*#__PURE__*/isValidElement(children)) return /*#__PURE__*/_jsx("span", {
@@ -121,33 +142,31 @@ var TooltipInGroup = function TooltipInGroup(_ref) {
121
142
  return referenceNode;
122
143
  };
123
144
  TooltipInGroup.displayName = 'TooltipInGroup';
124
- var TooltipStandalone = function TooltipStandalone(_ref2) {
125
- var ref = _ref2.ref,
126
- hotkey = _ref2.hotkey,
127
- className = _ref2.className,
128
- _ref2$arrow = _ref2.arrow,
129
- arrow = _ref2$arrow === void 0 ? false : _ref2$arrow,
130
- title = _ref2.title,
131
- hotkeyProps = _ref2.hotkeyProps,
132
- children = _ref2.children,
133
- _ref2$placement = _ref2.placement,
134
- placement = _ref2$placement === void 0 ? 'top' : _ref2$placement,
135
- openDelay = _ref2.openDelay,
136
- closeDelay = _ref2.closeDelay,
137
- _ref2$mouseEnterDelay = _ref2.mouseEnterDelay,
138
- mouseEnterDelay = _ref2$mouseEnterDelay === void 0 ? 0 : _ref2$mouseEnterDelay,
139
- _ref2$mouseLeaveDelay = _ref2.mouseLeaveDelay,
140
- mouseLeaveDelay = _ref2$mouseLeaveDelay === void 0 ? 0 : _ref2$mouseLeaveDelay,
141
- open = _ref2.open,
142
- defaultOpen = _ref2.defaultOpen,
143
- onOpenChange = _ref2.onOpenChange,
144
- disabled = _ref2.disabled,
145
- classNames = _ref2.classNames,
146
- styleProps = _ref2.styles,
147
- zIndex = _ref2.zIndex,
148
- _ref2$portalled = _ref2.portalled,
149
- portalled = _ref2$portalled === void 0 ? true : _ref2$portalled,
150
- getPopupContainer = _ref2.getPopupContainer;
145
+ var TooltipStandalone = function TooltipStandalone(_ref4) {
146
+ var ref = _ref4.ref,
147
+ hotkey = _ref4.hotkey,
148
+ className = _ref4.className,
149
+ _ref4$arrow = _ref4.arrow,
150
+ arrow = _ref4$arrow === void 0 ? false : _ref4$arrow,
151
+ title = _ref4.title,
152
+ hotkeyProps = _ref4.hotkeyProps,
153
+ children = _ref4.children,
154
+ _ref4$placement = _ref4.placement,
155
+ placement = _ref4$placement === void 0 ? 'top' : _ref4$placement,
156
+ openDelay = _ref4.openDelay,
157
+ closeDelay = _ref4.closeDelay,
158
+ mouseEnterDelay = _ref4.mouseEnterDelay,
159
+ mouseLeaveDelay = _ref4.mouseLeaveDelay,
160
+ open = _ref4.open,
161
+ defaultOpen = _ref4.defaultOpen,
162
+ onOpenChange = _ref4.onOpenChange,
163
+ disabled = _ref4.disabled,
164
+ classNames = _ref4.classNames,
165
+ styleProps = _ref4.styles,
166
+ zIndex = _ref4.zIndex,
167
+ _ref4$portalled = _ref4.portalled,
168
+ portalled = _ref4$portalled === void 0 ? true : _ref4$portalled,
169
+ getPopupContainer = _ref4.getPopupContainer;
151
170
  var arrowRef = useRef(null);
152
171
  var _useState = useState(Boolean(defaultOpen)),
153
172
  _useState2 = _slicedToArray(_useState, 2),
@@ -182,8 +201,8 @@ var TooltipStandalone = function TooltipStandalone(_ref2) {
182
201
  refs = _useFloating.refs;
183
202
  var resolvedDelay = useMemo(function () {
184
203
  return {
185
- close: closeDelay !== null && closeDelay !== void 0 ? closeDelay : mouseLeaveDelay * 1000,
186
- open: openDelay !== null && openDelay !== void 0 ? openDelay : mouseEnterDelay * 1000
204
+ close: closeDelay !== null && closeDelay !== void 0 ? closeDelay : mouseLeaveDelay !== undefined ? mouseLeaveDelay * 1000 : 100,
205
+ open: openDelay !== null && openDelay !== void 0 ? openDelay : mouseEnterDelay !== undefined ? mouseEnterDelay * 1000 : 100
187
206
  };
188
207
  }, [closeDelay, mouseEnterDelay, mouseLeaveDelay, openDelay]);
189
208
  var hover = useHover(context, {
@@ -250,7 +269,7 @@ var TooltipStandalone = function TooltipStandalone(_ref2) {
250
269
  });
251
270
  };
252
271
  export var Tooltip = function Tooltip(props) {
253
- var group = useContext(TooltipGroupContext);
272
+ var group = useContext(TooltipGroupApiContext);
254
273
 
255
274
  // Group mode is intentionally hover/focus driven; keep standalone behavior for controlled cases.
256
275
  var canUseGroup = Boolean(group) && props.open === undefined && props.defaultOpen === undefined;
@@ -6,14 +6,9 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
6
6
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
7
7
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
8
8
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
10
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
11
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
12
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
13
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
14
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
15
9
  import { FloatingArrow } from '@floating-ui/react';
16
- import React, { useLayoutEffect, useMemo, useState } from 'react';
10
+ import { useDebounce } from 'ahooks';
11
+ import React, { useMemo } from 'react';
17
12
  import { Flexbox } from "../Flex";
18
13
  import Hotkey from "../Hotkey";
19
14
  import { AnimatePresence, LazyMotion, m } from "../motion";
@@ -64,26 +59,14 @@ var TooltipFloating = function TooltipFloating(_ref) {
64
59
  }
65
60
  }
66
61
  }, [placement]);
67
- var _useState = useState(false),
68
- _useState2 = _slicedToArray(_useState, 2),
69
- openNextTick = _useState2[0],
70
- setOpenNextTick = _useState2[1];
71
- useLayoutEffect(function () {
72
- if (!open) {
73
- setOpenNextTick(false);
74
- return;
75
- }
76
- var rafId = requestAnimationFrame(function () {
77
- setOpenNextTick(true);
78
- });
79
- return function () {
80
- cancelAnimationFrame(rafId);
81
- };
82
- }, [open]);
62
+ var hasTransform = useDebounce(Boolean(floatingStyles === null || floatingStyles === void 0 ? void 0 : floatingStyles.transform), {
63
+ leading: false,
64
+ wait: 16
65
+ });
83
66
  return /*#__PURE__*/_jsx(LazyMotion, {
84
67
  children: /*#__PURE__*/_jsx(AnimatePresence, {
85
68
  children: open && title && /*#__PURE__*/_jsx("div", _objectSpread(_objectSpread({
86
- className: cx(styles.tooltip, openNextTick && styles.tooltipLayout, classNames === null || classNames === void 0 ? void 0 : classNames.container, classNames === null || classNames === void 0 ? void 0 : classNames.root, className),
69
+ className: cx(styles.tooltip, hasTransform && styles.tooltipLayout, classNames === null || classNames === void 0 ? void 0 : classNames.container, classNames === null || classNames === void 0 ? void 0 : classNames.root, className),
87
70
  ref: setFloating,
88
71
  role: "tooltip",
89
72
  style: styleProps !== null && styleProps !== void 0 && styleProps.root ? _objectSpread(_objectSpread(_objectSpread({}, floatingStyles), {}, {
@@ -1,5 +1,6 @@
1
1
  import { type FC, type ReactNode } from 'react';
2
- type TooltipGroupProps = {
2
+ import { type TooltipGroupSharedProps } from './groupContext';
3
+ type TooltipGroupProps = TooltipGroupSharedProps & {
3
4
  children: ReactNode;
4
5
  };
5
6
  declare const TooltipGroup: FC<TooltipGroupProps>;
@@ -1,22 +1,26 @@
1
1
  'use client';
2
2
 
3
+ var _excluded = ["children"];
3
4
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
5
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5
6
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
7
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
7
8
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
8
9
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
10
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
11
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
9
12
  import { arrow as arrowMiddleware, autoUpdate, flip, offset, shift, useFloating } from '@floating-ui/react';
10
13
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
11
14
  import { antdPlacementToFloating } from "./antdPlacementToFloating";
12
15
  import TooltipFloating from "./TooltipFloating";
13
16
  import TooltipPortal from "./TooltipPortal";
14
- import { TooltipGroupContext } from "./groupContext";
17
+ import { TooltipGroupApiContext, TooltipGroupPropsContext } from "./groupContext";
15
18
  import { jsx as _jsx } from "react/jsx-runtime";
16
19
  import { jsxs as _jsxs } from "react/jsx-runtime";
17
20
  var TooltipGroup = function TooltipGroup(_ref) {
18
21
  var _active$item$portalle;
19
- var children = _ref.children;
22
+ var children = _ref.children,
23
+ sharedProps = _objectWithoutProperties(_ref, _excluded);
20
24
  var arrowRef = useRef(null);
21
25
  var openTimerRef = useRef(null);
22
26
  var closeTimerRef = useRef(null);
@@ -73,10 +77,10 @@ var TooltipGroup = function TooltipGroup(_ref) {
73
77
  return Boolean(activeRef.current && activeRef.current.triggerEl === triggerEl);
74
78
  }, []);
75
79
  var closeFromTrigger = useCallback(function (triggerEl, item) {
76
- var _item$closeDelay, _item$mouseLeaveDelay;
80
+ var _item$closeDelay;
77
81
  if (!activeRef.current || activeRef.current.triggerEl !== triggerEl) return;
78
82
  clearTimers();
79
- var delayMs = (_item$closeDelay = item.closeDelay) !== null && _item$closeDelay !== void 0 ? _item$closeDelay : ((_item$mouseLeaveDelay = item.mouseLeaveDelay) !== null && _item$mouseLeaveDelay !== void 0 ? _item$mouseLeaveDelay : 0) * 1000;
83
+ var delayMs = (_item$closeDelay = item.closeDelay) !== null && _item$closeDelay !== void 0 ? _item$closeDelay : item.mouseLeaveDelay !== undefined ? item.mouseLeaveDelay * 1000 : 100;
80
84
  if (delayMs <= 0) {
81
85
  var _item$onOpenChange;
82
86
  setOpen(false);
@@ -90,7 +94,7 @@ var TooltipGroup = function TooltipGroup(_ref) {
90
94
  }, delayMs);
91
95
  }, [clearTimers]);
92
96
  var openFromTrigger = useCallback(function (triggerEl, item) {
93
- var _item$openDelay, _item$mouseEnterDelay;
97
+ var _item$openDelay;
94
98
  if (!triggerEl) return;
95
99
  if (!item.title) return;
96
100
  if (item.disabled) return;
@@ -99,7 +103,7 @@ var TooltipGroup = function TooltipGroup(_ref) {
99
103
  item: item,
100
104
  triggerEl: triggerEl
101
105
  });
102
- var delayMs = (_item$openDelay = item.openDelay) !== null && _item$openDelay !== void 0 ? _item$openDelay : ((_item$mouseEnterDelay = item.mouseEnterDelay) !== null && _item$mouseEnterDelay !== void 0 ? _item$mouseEnterDelay : 0) * 1000;
106
+ var delayMs = (_item$openDelay = item.openDelay) !== null && _item$openDelay !== void 0 ? _item$openDelay : item.mouseEnterDelay !== undefined ? item.mouseEnterDelay * 1000 : 100;
103
107
  if (delayMs <= 0) {
104
108
  var _item$onOpenChange3;
105
109
  setOpen(true);
@@ -112,7 +116,7 @@ var TooltipGroup = function TooltipGroup(_ref) {
112
116
  (_item$onOpenChange4 = item.onOpenChange) === null || _item$onOpenChange4 === void 0 || _item$onOpenChange4.call(item, true);
113
117
  }, delayMs);
114
118
  }, [clearTimers]);
115
- var api = useMemo(function () {
119
+ var groupApi = useMemo(function () {
116
120
  return {
117
121
  closeFromTrigger: closeFromTrigger,
118
122
  closeImmediately: closeImmediately,
@@ -142,12 +146,15 @@ var TooltipGroup = function TooltipGroup(_ref) {
142
146
  title: active === null || active === void 0 ? void 0 : active.item.title,
143
147
  zIndex: active === null || active === void 0 ? void 0 : active.item.zIndex
144
148
  });
145
- return /*#__PURE__*/_jsxs(TooltipGroupContext.Provider, {
146
- value: api,
147
- children: [children, (active === null || active === void 0 ? void 0 : active.item.title) && !active.item.disabled && (((_active$item$portalle = active.item.portalled) !== null && _active$item$portalle !== void 0 ? _active$item$portalle : true) ? /*#__PURE__*/_jsx(TooltipPortal, {
148
- root: portalRoot,
149
- children: floatingNode
150
- }) : floatingNode)]
149
+ return /*#__PURE__*/_jsx(TooltipGroupApiContext.Provider, {
150
+ value: groupApi,
151
+ children: /*#__PURE__*/_jsxs(TooltipGroupPropsContext.Provider, {
152
+ value: sharedProps,
153
+ children: [children, (active === null || active === void 0 ? void 0 : active.item.title) && !active.item.disabled && (((_active$item$portalle = active.item.portalled) !== null && _active$item$portalle !== void 0 ? _active$item$portalle : true) ? /*#__PURE__*/_jsx(TooltipPortal, {
154
+ root: portalRoot,
155
+ children: floatingNode
156
+ }) : floatingNode)]
157
+ })
151
158
  });
152
159
  };
153
160
  export default TooltipGroup;
@@ -1,10 +1,12 @@
1
1
  /// <reference types="react" />
2
2
  import type { TooltipProps } from './type';
3
3
  export type TooltipGroupItem = Omit<TooltipProps, 'children' | 'open' | 'defaultOpen'>;
4
+ export type TooltipGroupSharedProps = Omit<TooltipProps, 'children' | 'defaultOpen' | 'open' | 'ref' | 'title'>;
4
5
  export type TooltipGroupApi = {
5
6
  closeFromTrigger: (triggerEl: HTMLElement, item: TooltipGroupItem) => void;
6
7
  closeImmediately: () => void;
7
8
  isActiveTrigger: (triggerEl: HTMLElement) => boolean;
8
9
  openFromTrigger: (triggerEl: HTMLElement, item: TooltipGroupItem) => void;
9
10
  };
10
- export declare const TooltipGroupContext: import("react").Context<TooltipGroupApi | null>;
11
+ export declare const TooltipGroupApiContext: import("react").Context<TooltipGroupApi | null>;
12
+ export declare const TooltipGroupPropsContext: import("react").Context<TooltipGroupSharedProps | null>;
@@ -1,2 +1,3 @@
1
1
  import { createContext } from 'react';
2
- export var TooltipGroupContext = /*#__PURE__*/createContext(null);
2
+ export var TooltipGroupApiContext = /*#__PURE__*/createContext(null);
3
+ export var TooltipGroupPropsContext = /*#__PURE__*/createContext(null);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/ui",
3
- "version": "3.3.5",
3
+ "version": "3.4.0",
4
4
  "description": "Lobe UI is an open-source UI component library for building AIGC web apps",
5
5
  "keywords": [
6
6
  "lobehub",