@lobehub/ui 2.8.2 → 2.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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 = ["className", "style", "avatars", "size", "cornerShape", "avatarShape"];
4
+ var _excluded = ["className", "style", "avatars", "size", "grid", "cornerShape", "avatarShape"];
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; }
@@ -23,6 +23,8 @@ var GroupAvatar = /*#__PURE__*/memo(function (_ref) {
23
23
  avatars = _ref$avatars === void 0 ? [] : _ref$avatars,
24
24
  _ref$size = _ref.size,
25
25
  size = _ref$size === void 0 ? 32 : _ref$size,
26
+ _ref$grid = _ref.grid,
27
+ grid = _ref$grid === void 0 ? 2 : _ref$grid,
26
28
  _ref$cornerShape = _ref.cornerShape,
27
29
  cornerShape = _ref$cornerShape === void 0 ? 'squircle' : _ref$cornerShape,
28
30
  _ref$avatarShape = _ref.avatarShape,
@@ -32,21 +34,29 @@ var GroupAvatar = /*#__PURE__*/memo(function (_ref) {
32
34
  cx = _useStyles.cx,
33
35
  styles = _useStyles.styles;
34
36
  var calcSize = useMemo(function () {
37
+ var length = avatars.length;
38
+ var isAutoGrid = grid === 'auto';
39
+ var gridSize = isAutoGrid ? length > 4 ? 3 : 2 : grid;
35
40
  var isCircle = cornerShape === 'circle';
36
- var avatarSize = Math.floor(size / 2 * (isCircle ? 0.65 : 0.75));
37
- var gapSize = Math.floor((size - avatarSize * 2) / (isCircle ? 6 : 4));
41
+ var avatarSize = Math.floor(size / gridSize * (isCircle ? 0.65 : 0.75));
42
+ var gapSize = Math.floor((size - avatarSize * gridSize) / (isCircle ? 6 : 4));
38
43
  return {
39
44
  avatarSize: avatarSize,
40
45
  gapSize: gapSize,
41
- gridWidth: avatarSize * 2 + gapSize,
46
+ gridSize: gridSize,
47
+ gridWidth: avatarSize * gridSize + gapSize,
42
48
  maxItemWidth: avatarSize - 1
43
49
  };
44
- }, [size, cornerShape]);
50
+ }, [avatars, grid, size, cornerShape]);
51
+ var calcAvatars = useMemo(function () {
52
+ return avatars === null || avatars === void 0 ? void 0 : avatars.slice(0, calcSize.gridSize * calcSize.gridSize);
53
+ }, [avatars, calcSize.gridSize]);
45
54
  var variants = useMemo(function () {
46
55
  return cva(styles.root, {
47
56
  defaultVariants: {
48
57
  cornerShape: 'squircle'
49
58
  },
59
+ /* eslint-disable sort-keys-fix/sort-keys-fix */
50
60
  variants: {
51
61
  cornerShape: {
52
62
  circle: styles.circle,
@@ -72,17 +82,15 @@ var GroupAvatar = /*#__PURE__*/memo(function (_ref) {
72
82
  }, rest), {}, {
73
83
  children: /*#__PURE__*/_jsx(Grid, {
74
84
  gap: calcSize.gapSize,
75
- maxItemWidth: calcSize.maxItemWidth,
76
- rows: 2,
85
+ maxItemWidth: 0,
86
+ rows: calcSize.gridSize,
77
87
  width: calcSize.gridWidth,
78
- children: avatars === null || avatars === void 0 ? void 0 : avatars.slice(0, 4).map(function (item, index) {
79
- if (typeof item === 'string') {
80
- return /*#__PURE__*/_jsx(Avatar, {
81
- avatar: item,
82
- shape: avatarShape,
83
- size: calcSize.avatarSize
84
- }, index);
85
- }
88
+ children: calcAvatars.map(function (item, index) {
89
+ if (typeof item === 'string') return /*#__PURE__*/_jsx(Avatar, {
90
+ avatar: item,
91
+ shape: avatarShape,
92
+ size: calcSize.avatarSize
93
+ }, index);
86
94
  return /*#__PURE__*/_jsx(Avatar, _objectSpread(_objectSpread({}, item), {}, {
87
95
  shape: avatarShape,
88
96
  size: calcSize.avatarSize
@@ -6,7 +6,7 @@ export var useStyles = createStyles(function (_ref) {
6
6
  var css = _ref.css;
7
7
  var baseRoot = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n overflow: hidden;\n flex: none;\n\n /* Fallback for browsers without mask support */\n border-radius: 15%;\n\n /* Apply smooth corners mask with fallback */\n @supports (mask-image: url('data:image/svg+xml;base64,')) {\n border-radius: 0;\n }\n "])));
8
8
  var createCornerVariant = function createCornerVariant(cornerType) {
9
- return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n /* WebKit prefix for better browser support */\n mask-image: url('", "');\n\n mask-image: url('", "');\n mask-position: center;\n mask-position: center;\n mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n mask-size: 100% 100%;\n mask-size: 100% 100%;\n "])), SMOOTH_CORNER_MASKS[cornerType], SMOOTH_CORNER_MASKS[cornerType]);
9
+ return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n mask-image: url('", "');\n mask-position: center;\n mask-repeat: no-repeat;\n mask-size: 100% 100%;\n "])), SMOOTH_CORNER_MASKS[cornerType]);
10
10
  };
11
11
  return {
12
12
  circle: createCornerVariant('circle'),
@@ -7,6 +7,7 @@ export interface GroupAvatarProps extends Omit<BlockProps, 'width' | 'height' |
7
7
  avatarShape?: AvatarProps['shape'];
8
8
  avatars?: AvatarItem[];
9
9
  cornerShape?: keyof typeof SMOOTH_CORNER_MASKS;
10
+ grid?: 2 | 3 | 'auto';
10
11
  ref?: Ref<HTMLDivElement>;
11
12
  size?: number;
12
13
  }
@@ -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 = ["className", "children", "orientation", "hideScrollBar", "size", "offset", "visibility", "isEnabled", "onVisibilityChange", "style"];
4
+ var _excluded = ["className", "children", "orientation", "hideScrollBar", "size", "offset", "visibility", "isEnabled", "onVisibilityChange", "style", "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; }
@@ -12,6 +12,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
12
12
  import { cva } from 'class-variance-authority';
13
13
  import { memo, useMemo, useRef } from 'react';
14
14
  import { Flexbox } from 'react-layout-kit';
15
+ import { mergeRefs } from 'react-merge-refs';
15
16
  import { useStyles } from "./style";
16
17
  import { useScrollOverflow } from "./useScrollOverflow";
17
18
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -32,6 +33,7 @@ var ScrollShadow = /*#__PURE__*/memo(function (_ref) {
32
33
  isEnabled = _ref$isEnabled === void 0 ? true : _ref$isEnabled,
33
34
  onVisibilityChange = _ref.onVisibilityChange,
34
35
  style = _ref.style,
36
+ ref = _ref.ref,
35
37
  rest = _objectWithoutProperties(_ref, _excluded);
36
38
  var _useStyles = useStyles(size),
37
39
  cx = _useStyles.cx,
@@ -143,7 +145,7 @@ var ScrollShadow = /*#__PURE__*/memo(function (_ref) {
143
145
  orientation: orientation,
144
146
  scrollPosition: scrollPosition
145
147
  }), className),
146
- ref: domRef,
148
+ ref: mergeRefs([domRef, ref]),
147
149
  style: style
148
150
  }, dataAttributes), rest), {}, {
149
151
  children: children
@@ -1,3 +1,4 @@
1
+ import type { Ref } from 'react';
1
2
  import type { FlexboxProps } from 'react-layout-kit';
2
3
  export interface ScrollShadowProps extends FlexboxProps {
3
4
  hideScrollBar?: boolean;
@@ -10,6 +11,7 @@ export interface ScrollShadowProps extends FlexboxProps {
10
11
  top?: boolean;
11
12
  }) => void;
12
13
  orientation?: 'vertical' | 'horizontal';
14
+ ref?: Ref<HTMLDivElement>;
13
15
  size?: number;
14
16
  visibility?: 'auto' | 'always' | 'never';
15
17
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/ui",
3
- "version": "2.8.2",
3
+ "version": "2.8.4",
4
4
  "description": "Lobe UI is an open-source UI component library for building AIGC web apps",
5
5
  "keywords": [
6
6
  "lobehub",