@lobehub/ui 3.0.0 → 3.1.1

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 (40) hide show
  1. package/es/Accordion/AccordionItem.js +1 -7
  2. package/es/ActionIcon/type.d.ts +1 -1
  3. package/es/Alert/Alert.js +10 -11
  4. package/es/Alert/style.js +1 -1
  5. package/es/Avatar/type.d.ts +1 -1
  6. package/es/Image/components/usePreview.js +26 -20
  7. package/es/Image/components/usePreviewGroup.js +13 -7
  8. package/es/Image/type.d.ts +2 -2
  9. package/es/Mermaid/SyntaxMermaid/index.js +1 -8
  10. package/es/Tabs/Tabs.js +12 -6
  11. package/es/Toc/TocMobile.js +1 -1
  12. package/es/Tooltip/Tooltip.d.ts +2 -2
  13. package/es/Tooltip/Tooltip.js +240 -33
  14. package/es/Tooltip/TooltipFloating.d.ts +30 -0
  15. package/es/Tooltip/TooltipFloating.js +135 -0
  16. package/es/Tooltip/TooltipGroup.d.ts +6 -0
  17. package/es/Tooltip/TooltipGroup.js +159 -0
  18. package/es/Tooltip/TooltipPortal.d.ts +7 -0
  19. package/es/Tooltip/TooltipPortal.js +46 -0
  20. package/es/Tooltip/antdPlacementToFloating.d.ts +9 -0
  21. package/es/Tooltip/antdPlacementToFloating.js +51 -0
  22. package/es/Tooltip/groupContext.d.ts +10 -0
  23. package/es/Tooltip/groupContext.js +2 -0
  24. package/es/Tooltip/index.d.ts +1 -0
  25. package/es/Tooltip/index.js +2 -1
  26. package/es/Tooltip/style.d.ts +2 -0
  27. package/es/Tooltip/style.js +5 -4
  28. package/es/Tooltip/type.d.ts +93 -5
  29. package/es/index.d.ts +1 -1
  30. package/es/index.js +1 -1
  31. package/es/mdx/Mdx/index.js +1 -1
  32. package/es/motion/LazyMotion.d.ts +15 -0
  33. package/es/motion/LazyMotion.js +26 -0
  34. package/es/motion/index.d.ts +3 -0
  35. package/es/motion/index.js +3 -0
  36. package/es/motion/loadFeatures.d.ts +9 -0
  37. package/es/motion/loadFeatures.js +10 -0
  38. package/es/utils/composeEventHandlers.d.ts +19 -0
  39. package/es/utils/composeEventHandlers.js +26 -0
  40. package/package.json +1 -1
@@ -6,22 +6,17 @@ 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
- import { LazyMotion, m } from 'motion/react';
10
9
  import { memo, useCallback, useMemo } from 'react';
11
10
  import { Flexbox } from 'react-layout-kit';
12
11
  import Block from "../Block";
13
12
  import Text from "../Text";
13
+ import { LazyMotion, m } from "../motion";
14
14
  import ArrowIcon from "./ArrowIcon";
15
15
  import { useAccordionContext } from "./context";
16
16
  import { useStyles } from "./style";
17
17
  import { jsx as _jsx } from "react/jsx-runtime";
18
18
  import { jsxs as _jsxs } from "react/jsx-runtime";
19
19
  import { Fragment as _Fragment } from "react/jsx-runtime";
20
- var loadFeatures = function loadFeatures() {
21
- return import('motion/react').then(function (res) {
22
- return res.domAnimation;
23
- });
24
- };
25
20
  var AccordionItem = /*#__PURE__*/memo(function (_ref) {
26
21
  var _ref2, _ref3;
27
22
  var itemKey = _ref.itemKey,
@@ -163,7 +158,6 @@ var AccordionItem = /*#__PURE__*/memo(function (_ref) {
163
158
  });
164
159
  }
165
160
  return /*#__PURE__*/_jsx(LazyMotion, {
166
- features: loadFeatures,
167
161
  children: /*#__PURE__*/_jsx(m.div, _objectSpread(_objectSpread({}, motionProps), {}, {
168
162
  style: {
169
163
  overflow: 'hidden'
@@ -19,7 +19,7 @@ export interface ActionIconProps extends Partial<LucideIconProps>, Omit<CenterPr
19
19
  size?: ActionIconSize;
20
20
  spin?: boolean;
21
21
  title?: TooltipProps['title'];
22
- tooltipProps?: Omit<TooltipProps, 'title'>;
22
+ tooltipProps?: Omit<TooltipProps, 'children' | 'title'>;
23
23
  variant?: 'borderless' | 'filled' | 'outlined';
24
24
  }
25
25
  export {};
package/es/Alert/Alert.js CHANGED
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
- var _excluded = ["closeIcon", "closable", "description", "showIcon", "type", "glass", "icon", "colorfulText", "iconProps", "style", "extra", "classNames", "styles", "text", "extraDefaultExpand", "extraIsolate", "banner", "variant", "ref"];
4
+ var _excluded = ["closable", "description", "showIcon", "type", "glass", "icon", "colorfulText", "iconProps", "style", "extra", "classNames", "styles", "text", "extraDefaultExpand", "extraIsolate", "banner", "variant", "ref"];
5
5
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
6
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
7
  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; }
@@ -37,8 +37,7 @@ var colors = function colors(theme) {
37
37
  return theme[camelCase(['color', type].concat(keys).join('-'))];
38
38
  };
39
39
  var Alert = /*#__PURE__*/memo(function (_ref) {
40
- var closeIcon = _ref.closeIcon,
41
- _ref$closable = _ref.closable,
40
+ var _ref$closable = _ref.closable,
42
41
  closable = _ref$closable === void 0 ? false : _ref$closable,
43
42
  description = _ref.description,
44
43
  _ref$showIcon = _ref.showIcon,
@@ -146,12 +145,13 @@ var Alert = /*#__PURE__*/memo(function (_ref) {
146
145
  hasExtra: isInsideExtra,
147
146
  variant: variant
148
147
  }), classNames === null || classNames === void 0 ? void 0 : classNames.alert),
149
- closable: closable,
150
- closeIcon: closeIcon || /*#__PURE__*/_jsx(ActionIcon, {
151
- color: colors(theme, type),
152
- icon: X,
153
- size: 'small'
154
- }),
148
+ closable: typeof closable === 'boolean' ? closable : _objectSpread({
149
+ closeIcon: /*#__PURE__*/_jsx(ActionIcon, {
150
+ color: colors(theme, type),
151
+ icon: X,
152
+ size: 'small'
153
+ })
154
+ }, closable),
155
155
  description: description,
156
156
  icon: /*#__PURE__*/_jsx(Icon, _objectSpread({
157
157
  color: type === 'secondary' ? theme.colorTextSecondary : undefined,
@@ -199,8 +199,7 @@ var Alert = /*#__PURE__*/memo(function (_ref) {
199
199
  itemKey: 'extra',
200
200
  styles: {
201
201
  content: _objectSpread({
202
- fontSize: 12,
203
- padding: 8
202
+ fontSize: 12
204
203
  }, customStyles === null || customStyles === void 0 ? void 0 : customStyles.extraContent),
205
204
  header: {
206
205
  borderColor: colors(theme, type, 'fillSecondary')
package/es/Alert/style.js CHANGED
@@ -24,6 +24,6 @@ export var useStyles = createStyles(function (_ref, _ref2) {
24
24
  glass: stylish.blur,
25
25
  hasExtra: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n border-block-end: none;\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n "]))),
26
26
  outlined: css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n background: transparent !important;\n "]))),
27
- root: cx(css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n position: relative;\n\n display: flex;\n flex-direction: row;\n gap: ", "px;\n align-items: flex-start;\n\n max-width: 100%;\n padding-block: ", "px;\n padding-inline: ", "px\n ", "px;\n\n .", "-alert-message {\n font-weight: ", ";\n line-height: 24px;\n word-break: normal;\n }\n .", "-alert-icon {\n display: flex;\n align-items: center;\n height: 24px;\n margin: 0;\n }\n .", "-alert-close-icon {\n display: flex;\n align-items: center;\n height: 24px;\n margin: 0;\n }\n "])), hasTitle ? 12 : 8, baseBlockPadding, showIcon ? baseInlinePadding * 0.75 : baseInlinePadding, closable ? baseInlinePadding * 0.75 : baseInlinePadding, prefixCls, hasTitle ? 600 : 400, prefixCls, prefixCls), hasTitle && css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n .", "-alert-description {\n line-height: 1.5;\n word-break: normal;\n opacity: 0.75;\n }\n "])), prefixCls))
27
+ root: cx(css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n position: relative;\n\n display: flex;\n flex-direction: row;\n gap: ", "px;\n align-items: flex-start;\n\n max-width: 100%;\n padding-block: ", "px;\n padding-inline: ", "px\n ", "px;\n\n .", "-alert-title {\n font-weight: ", ";\n line-height: 24px;\n color: inherit;\n word-break: normal;\n }\n .", "-alert-icon {\n display: flex;\n align-items: center;\n height: 24px;\n margin: 0;\n }\n .", "-alert-close-icon {\n display: flex;\n align-items: center;\n height: 24px;\n margin: 0;\n }\n "])), hasTitle ? 12 : 8, baseBlockPadding, showIcon ? baseInlinePadding * 0.75 : baseInlinePadding, closable ? baseInlinePadding * 0.75 : baseInlinePadding, prefixCls, hasTitle ? 500 : 400, prefixCls, prefixCls), hasTitle && css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n .", "-alert-description {\n line-height: 1.5;\n word-break: normal;\n opacity: 0.75;\n }\n "])), prefixCls))
28
28
  };
29
29
  });
@@ -16,7 +16,7 @@ export interface AvatarProps extends AntAvatarProps {
16
16
  size?: number;
17
17
  sliceText?: boolean;
18
18
  title?: string;
19
- tooltipProps?: Omit<TooltipProps, 'title'>;
19
+ tooltipProps?: Omit<TooltipProps, 'children' | 'title'>;
20
20
  unoptimized?: boolean;
21
21
  variant?: 'borderless' | 'filled' | 'outlined';
22
22
  }
@@ -1,5 +1,5 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- var _excluded = ["onVisibleChange", "styles", "minScale", "maxScale", "toolbarAddon", "rootClassName", "imageRender", "toolbarRender"];
2
+ var _excluded = ["onVisibleChange", "onOpenChange", "minScale", "maxScale", "toolbarAddon", "rootClassName", "imageRender", "toolbarRender", "actionsRender"];
3
3
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
5
  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; }
@@ -31,9 +31,8 @@ export var usePreview = function usePreview(props) {
31
31
  return useMemo(function () {
32
32
  if (props === false) return props;
33
33
  var _ref = props === true ? {} : props || {},
34
- _onVisibleChange = _ref.onVisibleChange,
35
- _ref$styles = _ref.styles,
36
- previewStyle = _ref$styles === void 0 ? {} : _ref$styles,
34
+ onVisibleChange = _ref.onVisibleChange,
35
+ _onOpenChange = _ref.onOpenChange,
37
36
  _ref$minScale = _ref.minScale,
38
37
  minScale = _ref$minScale === void 0 ? 0.32 : _ref$minScale,
39
38
  _ref$maxScale = _ref.maxScale,
@@ -41,9 +40,24 @@ export var usePreview = function usePreview(props) {
41
40
  toolbarAddon = _ref.toolbarAddon,
42
41
  rootClassName = _ref.rootClassName,
43
42
  _imageRender = _ref.imageRender,
44
- _toolbarRender = _ref.toolbarRender,
43
+ toolbarRender = _ref.toolbarRender,
44
+ actionsRender = _ref.actionsRender,
45
45
  rest = _objectWithoutProperties(_ref, _excluded);
46
46
  return _objectSpread({
47
+ actionsRender: actionsRender || function (_, info) {
48
+ var originalNode = /*#__PURE__*/_jsx(Toolbar, {
49
+ info: info,
50
+ maxScale: maxScale,
51
+ minScale: minScale,
52
+ children: toolbarAddon
53
+ });
54
+ // 向后兼容 toolbarRender
55
+ if (toolbarRender) return toolbarRender(originalNode, info);
56
+ return originalNode;
57
+ },
58
+ classNames: {
59
+ root: cx(styles.preview, rootClassName)
60
+ },
47
61
  closeIcon: /*#__PURE__*/_jsx(Icon, {
48
62
  color: '#fff',
49
63
  icon: X
@@ -58,25 +72,17 @@ export var usePreview = function usePreview(props) {
58
72
  },
59
73
  maxScale: maxScale,
60
74
  minScale: minScale,
61
- onVisibleChange: function onVisibleChange(visible, prevVisible) {
62
- setVisible(visible);
63
- _onVisibleChange === null || _onVisibleChange === void 0 || _onVisibleChange(visible, prevVisible);
75
+ onOpenChange: function onOpenChange(open) {
76
+ setVisible(open);
77
+ // 支持新的 onOpenChange
78
+ _onOpenChange === null || _onOpenChange === void 0 || _onOpenChange(open);
79
+ // 向后兼容旧的 onVisibleChange
80
+ onVisibleChange === null || onVisibleChange === void 0 || onVisibleChange(open, !open);
64
81
  },
65
- rootClassName: cx(styles.preview, rootClassName),
66
- styles: _objectSpread({
82
+ styles: {
67
83
  mask: {
68
84
  backdropFilter: 'blur(8px)'
69
85
  }
70
- }, previewStyle),
71
- toolbarRender: function toolbarRender(_, info) {
72
- var originalNode = /*#__PURE__*/_jsx(Toolbar, {
73
- info: info,
74
- maxScale: maxScale,
75
- minScale: minScale,
76
- children: toolbarAddon
77
- });
78
- if (_toolbarRender) return _toolbarRender(originalNode, info);
79
- return originalNode;
80
86
  }
81
87
  }, rest);
82
88
  }, [props, visible, styles]);
@@ -1,5 +1,5 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- var _excluded = ["onVisibleChange", "minScale", "maxScale", "toolbarAddon", "rootClassName", "imageRender", "toolbarRender"];
2
+ var _excluded = ["onVisibleChange", "onOpenChange", "minScale", "maxScale", "toolbarAddon", "rootClassName", "imageRender", "toolbarRender"];
3
3
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
5
  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; }
@@ -31,7 +31,8 @@ export var usePreview = function usePreview(props) {
31
31
  return useMemo(function () {
32
32
  if (props === false) return props;
33
33
  var _ref = props === true ? {} : props || {},
34
- _onVisibleChange = _ref.onVisibleChange,
34
+ onVisibleChange = _ref.onVisibleChange,
35
+ _onOpenChange = _ref.onOpenChange,
35
36
  _ref$minScale = _ref.minScale,
36
37
  minScale = _ref$minScale === void 0 ? 0.32 : _ref$minScale,
37
38
  _ref$maxScale = _ref.maxScale,
@@ -52,6 +53,9 @@ export var usePreview = function usePreview(props) {
52
53
  if (toolbarRender) return toolbarRender(originalNode, info);
53
54
  return originalNode;
54
55
  },
56
+ classNames: {
57
+ root: cx(componentStyles.preview, rootClassName)
58
+ },
55
59
  closeIcon: /*#__PURE__*/_jsx(Icon, {
56
60
  color: '#fff',
57
61
  icon: X
@@ -66,11 +70,13 @@ export var usePreview = function usePreview(props) {
66
70
  },
67
71
  maxScale: maxScale,
68
72
  minScale: minScale,
69
- onVisibleChange: function onVisibleChange(visible, prevVisible, current) {
70
- setVisible(visible);
71
- _onVisibleChange === null || _onVisibleChange === void 0 || _onVisibleChange(visible, prevVisible, current);
72
- },
73
- rootClassName: cx(componentStyles.preview, rootClassName)
73
+ onOpenChange: function onOpenChange(open, info) {
74
+ setVisible(open);
75
+ // 支持新的 onOpenChange
76
+ _onOpenChange === null || _onOpenChange === void 0 || _onOpenChange(open, info);
77
+ // 向后兼容旧的 onVisibleChange (注意参数差异)
78
+ onVisibleChange === null || onVisibleChange === void 0 || onVisibleChange(open, !open, info.current);
79
+ }
74
80
  }, rest);
75
81
  }, [props, visible, componentStyles]);
76
82
  };
@@ -1,6 +1,6 @@
1
1
  import type { ImageProps as AntdImageProps } from 'antd';
2
+ import type { PreviewConfig } from 'antd/es/image';
2
3
  import type { GroupPreviewConfig } from 'antd/es/image/PreviewGroup';
3
- import type { ImagePreviewType } from 'rc-image';
4
4
  import type { CSSProperties, ReactNode, Ref } from 'react';
5
5
  export interface PreviewGroupPreviewOptions extends GroupPreviewConfig {
6
6
  toolbarAddon?: ReactNode;
@@ -11,7 +11,7 @@ export interface PreviewGroupProps {
11
11
  items?: string[];
12
12
  preview?: boolean | PreviewGroupPreviewOptions;
13
13
  }
14
- export interface ImagePreviewOptions extends ImagePreviewType {
14
+ export interface ImagePreviewOptions extends PreviewConfig {
15
15
  toolbarAddon?: ReactNode;
16
16
  }
17
17
  export interface ImageProps extends Omit<AntdImageProps, 'preview'> {
@@ -6,7 +6,6 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
6
6
  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
7
  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
8
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
9
- import { useTheme } from 'antd-style';
10
9
  import { kebabCase } from 'lodash-es';
11
10
  import { memo, useEffect, useId, useMemo, useState } from 'react';
12
11
  import Image from "../../Image";
@@ -28,7 +27,6 @@ var SyntaxMermaid = /*#__PURE__*/memo(function (_ref) {
28
27
  })) === null || _mermaidThemes$find === void 0 ? void 0 : _mermaidThemes$find.background;
29
28
  }, [isDefaultTheme, customTheme]);
30
29
  var id = useId();
31
- var theme = useTheme();
32
30
  var mermaidId = kebabCase("mermaid-".concat(id));
33
31
  var _useMermaid = useMermaid(children, {
34
32
  id: mermaidId,
@@ -82,12 +80,7 @@ var SyntaxMermaid = /*#__PURE__*/memo(function (_ref) {
82
80
  minWidth: 300,
83
81
  objectFit: 'contain',
84
82
  preview: enablePanZoom ? {
85
- mask: false,
86
- styles: {
87
- mask: {
88
- background: background || theme.colorBgContainerSecondary
89
- }
90
- }
83
+ mask: false
91
84
  } : false,
92
85
  ref: ref,
93
86
  src: blobUrl,
package/es/Tabs/Tabs.js CHANGED
@@ -17,6 +17,7 @@ import ActionIcon from "../ActionIcon";
17
17
  import { useStyles } from "./style";
18
18
  import { jsx as _jsx } from "react/jsx-runtime";
19
19
  var Tabs = /*#__PURE__*/memo(function (_ref) {
20
+ var _rest$classNames;
20
21
  var className = _ref.className,
21
22
  compact = _ref.compact,
22
23
  _ref$variant = _ref.variant,
@@ -55,20 +56,25 @@ var Tabs = /*#__PURE__*/memo(function (_ref) {
55
56
  /* eslint-enable sort-keys-fix/sort-keys-fix */
56
57
  });
57
58
  }, [styles]);
58
- return /*#__PURE__*/_jsx(AntdTabs, _objectSpread({
59
+ return /*#__PURE__*/_jsx(AntdTabs, _objectSpread(_objectSpread({
59
60
  className: cx(variants({
60
61
  compact: compact,
61
62
  underlined: hasContent,
62
63
  variant: variant
63
64
  }), className),
64
- items: items,
65
- more: {
65
+ items: items
66
+ }, rest), {}, {
67
+ classNames: _objectSpread(_objectSpread({}, rest === null || rest === void 0 ? void 0 : rest.classNames), {}, {
68
+ popup: _objectSpread({
69
+ root: styles.dropdown
70
+ }, rest === null || rest === void 0 || (_rest$classNames = rest.classNames) === null || _rest$classNames === void 0 ? void 0 : _rest$classNames.popup)
71
+ }),
72
+ more: _objectSpread({
66
73
  icon: /*#__PURE__*/_jsx(ActionIcon, {
67
74
  icon: MoreHorizontalIcon
68
75
  })
69
- },
70
- popupClassName: cx(styles.dropdown)
71
- }, rest));
76
+ }, rest === null || rest === void 0 ? void 0 : rest.more)
77
+ }));
72
78
  });
73
79
  Tabs.displayName = 'Tabs';
74
80
  export default Tabs;
@@ -59,7 +59,7 @@ var TocMobile = /*#__PURE__*/memo(function (_ref) {
59
59
  size: 'small'
60
60
  });
61
61
  },
62
- expandIconPosition: 'end',
62
+ expandIconPlacement: 'end',
63
63
  ghost: true,
64
64
  children: /*#__PURE__*/_jsx(Collapse.Panel, {
65
65
  forceRender: true,
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import { type FC } from 'react';
2
2
  import type { TooltipProps } from './type';
3
- declare const Tooltip: import("react").NamedExoticComponent<TooltipProps>;
3
+ export declare const Tooltip: FC<TooltipProps>;
4
4
  export default Tooltip;
@@ -1,22 +1,29 @@
1
1
  'use client';
2
2
 
3
3
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
- var _excluded = ["ref", "hotkey", "className", "arrow", "title", "hotkeyProps"];
4
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
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."); }
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); }
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; }
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; } }
9
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
5
10
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
11
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
12
  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; }
8
13
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
9
14
  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); }
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; }
12
- import { Tooltip as AntdTooltip } from 'antd';
13
- import { memo } from 'react';
14
- import { Flexbox } from 'react-layout-kit';
15
- import Hotkey from "../Hotkey";
16
- import { useStyles } from "./style";
15
+ import { arrow as arrowMiddleware, autoUpdate, flip, offset, shift, useDismiss, useFloating, useFocus, useHover, useInteractions, useRole } from '@floating-ui/react';
16
+ import { cloneElement, isValidElement, useContext, useEffect, useMemo, useRef, useState } from 'react';
17
+ import { mergeRefs } from 'react-merge-refs';
18
+ import { antdPlacementToFloating } from "./antdPlacementToFloating";
19
+ import { composeEventHandlers } from "../utils/composeEventHandlers";
20
+ import TooltipFloating from "./TooltipFloating";
21
+ import TooltipPortal from "./TooltipPortal";
22
+ import { TooltipGroupContext } from "./groupContext";
17
23
  import { jsx as _jsx } from "react/jsx-runtime";
24
+ import { Fragment as _Fragment } from "react/jsx-runtime";
18
25
  import { jsxs as _jsxs } from "react/jsx-runtime";
19
- var Tooltip = /*#__PURE__*/memo(function (_ref) {
26
+ var TooltipInGroup = function TooltipInGroup(_ref) {
20
27
  var ref = _ref.ref,
21
28
  hotkey = _ref.hotkey,
22
29
  className = _ref.className,
@@ -24,29 +31,229 @@ var Tooltip = /*#__PURE__*/memo(function (_ref) {
24
31
  arrow = _ref$arrow === void 0 ? false : _ref$arrow,
25
32
  title = _ref.title,
26
33
  hotkeyProps = _ref.hotkeyProps,
27
- rest = _objectWithoutProperties(_ref, _excluded);
28
- var _useStyles = useStyles(),
29
- styles = _useStyles.styles,
30
- cx = _useStyles.cx;
31
- return /*#__PURE__*/_jsx(AntdTooltip, _objectSpread({
34
+ children = _ref.children,
35
+ _ref$placement = _ref.placement,
36
+ placement = _ref$placement === void 0 ? 'top' : _ref$placement,
37
+ openDelay = _ref.openDelay,
38
+ 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,
43
+ onOpenChange = _ref.onOpenChange,
44
+ disabled = _ref.disabled,
45
+ classNames = _ref.classNames,
46
+ styleProps = _ref.styles,
47
+ zIndex = _ref.zIndex,
48
+ _ref$portalled = _ref.portalled,
49
+ portalled = _ref$portalled === void 0 ? true : _ref$portalled,
50
+ getPopupContainer = _ref.getPopupContainer;
51
+ var group = useContext(TooltipGroupContext);
52
+ var triggerElRef = useRef(null);
53
+ var item = useMemo(function () {
54
+ 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,
70
+ title: title,
71
+ zIndex: zIndex
72
+ };
73
+ }, [arrow, className, classNames, closeDelay, disabled, getPopupContainer, hotkey, hotkeyProps, mouseEnterDelay, mouseLeaveDelay, onOpenChange, openDelay, placement, portalled, styleProps, title, zIndex]);
74
+ var trigger = useMemo(function () {
75
+ var _children$props;
76
+ if (! /*#__PURE__*/isValidElement(children)) return /*#__PURE__*/_jsx("span", {
77
+ children: children
78
+ });
79
+ var needsWrapper = typeof children.type === 'string' && Boolean((_children$props = children.props) === null || _children$props === void 0 ? void 0 : _children$props.disabled);
80
+ if (needsWrapper) return /*#__PURE__*/_jsx("span", {
81
+ style: {
82
+ display: 'inline-flex'
83
+ },
84
+ children: children
85
+ });
86
+ return children;
87
+ }, [children]);
88
+ var referenceNode = useMemo(function () {
89
+ if (! /*#__PURE__*/isValidElement(trigger)) return trigger;
90
+ var originalRef = trigger.ref;
91
+ var triggerProps = trigger.props || {};
92
+ var setTriggerEl = function setTriggerEl(node) {
93
+ triggerElRef.current = node instanceof HTMLElement ? node : null;
94
+ };
95
+ return /*#__PURE__*/cloneElement(trigger, _objectSpread(_objectSpread({}, triggerProps), {}, {
96
+ onBlur: composeEventHandlers(triggerProps.onBlur, function (e) {
97
+ group === null || group === void 0 || group.closeFromTrigger(e.currentTarget, item);
98
+ }),
99
+ onFocus: composeEventHandlers(triggerProps.onFocus, function (e) {
100
+ group === null || group === void 0 || group.openFromTrigger(e.currentTarget, item);
101
+ }),
102
+ onKeyDown: composeEventHandlers(triggerProps.onKeyDown, function (e) {
103
+ if ((e === null || e === void 0 ? void 0 : e.key) === 'Escape') group === null || group === void 0 || group.closeImmediately();
104
+ }),
105
+ onPointerEnter: composeEventHandlers(triggerProps.onPointerEnter, function (e) {
106
+ group === null || group === void 0 || group.openFromTrigger(e.currentTarget, item);
107
+ }),
108
+ onPointerLeave: composeEventHandlers(triggerProps.onPointerLeave, function (e) {
109
+ group === null || group === void 0 || group.closeFromTrigger(e.currentTarget, item);
110
+ }),
111
+ ref: mergeRefs([originalRef, setTriggerEl, ref])
112
+ }));
113
+ }, [group, item, ref, trigger]);
114
+ useEffect(function () {
115
+ return function () {
116
+ if (!group) return;
117
+ var el = triggerElRef.current;
118
+ if (el && group.isActiveTrigger(el)) group.closeImmediately();
119
+ };
120
+ }, [group]);
121
+ return referenceNode;
122
+ };
123
+ 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;
151
+ var arrowRef = useRef(null);
152
+ var _useState = useState(Boolean(defaultOpen)),
153
+ _useState2 = _slicedToArray(_useState, 2),
154
+ uncontrolledOpen = _useState2[0],
155
+ setUncontrolledOpen = _useState2[1];
156
+ var mergedOpen = open !== null && open !== void 0 ? open : uncontrolledOpen;
157
+ var setOpen = function setOpen(next) {
158
+ if (open === undefined) setUncontrolledOpen(next);
159
+ onOpenChange === null || onOpenChange === void 0 || onOpenChange(next);
160
+ };
161
+ var floatingPlacement = useMemo(function () {
162
+ return antdPlacementToFloating(placement);
163
+ }, [placement]);
164
+ var middleware = useMemo(function () {
165
+ var base = [offset(8), flip(), shift({
166
+ padding: 8
167
+ })];
168
+ if (arrow) base.push(arrowMiddleware({
169
+ element: arrowRef
170
+ }));
171
+ return base;
172
+ }, [arrow]);
173
+ var _useFloating = useFloating({
174
+ middleware: middleware,
175
+ onOpenChange: setOpen,
176
+ open: disabled ? false : mergedOpen,
177
+ placement: floatingPlacement,
178
+ whileElementsMounted: autoUpdate
179
+ }),
180
+ context = _useFloating.context,
181
+ floatingStyles = _useFloating.floatingStyles,
182
+ refs = _useFloating.refs;
183
+ var resolvedDelay = useMemo(function () {
184
+ return {
185
+ close: closeDelay !== null && closeDelay !== void 0 ? closeDelay : mouseLeaveDelay * 1000,
186
+ open: openDelay !== null && openDelay !== void 0 ? openDelay : mouseEnterDelay * 1000
187
+ };
188
+ }, [closeDelay, mouseEnterDelay, mouseLeaveDelay, openDelay]);
189
+ var hover = useHover(context, {
190
+ delay: resolvedDelay,
191
+ enabled: !disabled,
192
+ move: false
193
+ });
194
+ var focus = useFocus(context, {
195
+ enabled: !disabled
196
+ });
197
+ var dismiss = useDismiss(context, {
198
+ enabled: !disabled
199
+ });
200
+ var role = useRole(context, {
201
+ role: 'tooltip'
202
+ });
203
+ var _useInteractions = useInteractions([hover, focus, dismiss, role]),
204
+ getFloatingProps = _useInteractions.getFloatingProps,
205
+ getReferenceProps = _useInteractions.getReferenceProps;
206
+ var trigger = useMemo(function () {
207
+ var _children$props2;
208
+ if (! /*#__PURE__*/isValidElement(children)) return /*#__PURE__*/_jsx("span", {
209
+ children: children
210
+ });
211
+ var needsWrapper = typeof children.type === 'string' && Boolean((_children$props2 = children.props) === null || _children$props2 === void 0 ? void 0 : _children$props2.disabled);
212
+ if (needsWrapper) return /*#__PURE__*/_jsx("span", {
213
+ style: {
214
+ display: 'inline-flex'
215
+ },
216
+ children: children
217
+ });
218
+ return children;
219
+ }, [children]);
220
+ var referenceNode = useMemo(function () {
221
+ if (! /*#__PURE__*/isValidElement(trigger)) return trigger;
222
+ var originalRef = trigger.ref;
223
+ return /*#__PURE__*/cloneElement(trigger, getReferenceProps(_objectSpread(_objectSpread({}, trigger.props), {}, {
224
+ ref: mergeRefs([originalRef, refs.setReference, ref])
225
+ })));
226
+ }, [getReferenceProps, ref, refs.setReference, trigger]);
227
+ var portalRoot = getPopupContainer && refs.reference.current ? getPopupContainer(refs.reference.current) : undefined;
228
+ var floatingNode = /*#__PURE__*/_jsx(TooltipFloating, {
32
229
  arrow: arrow,
33
- classNames: {
34
- root: cx(styles.tooltip, className)
35
- },
36
- ref: ref,
37
- title: hotkey ? /*#__PURE__*/_jsxs(Flexbox, {
38
- align: 'center',
39
- gap: 8,
40
- horizontal: true,
41
- justify: 'space-between',
42
- children: [/*#__PURE__*/_jsx("span", {
43
- children: title
44
- }), /*#__PURE__*/_jsx(Hotkey, _objectSpread({
45
- inverseTheme: true,
46
- keys: hotkey
47
- }, hotkeyProps))]
48
- }) : title
49
- }, rest));
50
- });
51
- Tooltip.displayName = 'Tooltip';
230
+ arrowRef: arrowRef,
231
+ className: className,
232
+ classNames: classNames,
233
+ context: context,
234
+ floatingProps: getFloatingProps(),
235
+ floatingStyles: floatingStyles,
236
+ hotkey: hotkey,
237
+ hotkeyProps: hotkeyProps,
238
+ open: mergedOpen,
239
+ placement: floatingPlacement,
240
+ setFloating: refs.setFloating,
241
+ styles: styleProps,
242
+ title: title,
243
+ zIndex: zIndex
244
+ });
245
+ return /*#__PURE__*/_jsxs(_Fragment, {
246
+ children: [referenceNode, !disabled && title && (portalled ? /*#__PURE__*/_jsx(TooltipPortal, {
247
+ root: portalRoot,
248
+ children: floatingNode
249
+ }) : floatingNode)]
250
+ });
251
+ };
252
+ export var Tooltip = function Tooltip(props) {
253
+ var group = useContext(TooltipGroupContext);
254
+
255
+ // Group mode is intentionally hover/focus driven; keep standalone behavior for controlled cases.
256
+ var canUseGroup = Boolean(group) && props.open === undefined && props.defaultOpen === undefined;
257
+ return canUseGroup ? /*#__PURE__*/_jsx(TooltipInGroup, _objectSpread({}, props)) : /*#__PURE__*/_jsx(TooltipStandalone, _objectSpread({}, props));
258
+ };
52
259
  export default Tooltip;