@moontra/moonui-pro 2.11.3 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +78 -10
- package/dist/index.mjs +980 -360
- package/package.json +1 -1
- package/src/components/file-upload/index.tsx +95 -39
- package/src/components/kanban/index.tsx +1068 -288
- package/src/components/ui/avatar.tsx +34 -19
|
@@ -83,16 +83,29 @@ const MoonUIAvatarFallbackPro = React.forwardRef<
|
|
|
83
83
|
MoonUIAvatarFallbackPro.displayName = AvatarPrimitive.Fallback.displayName;
|
|
84
84
|
|
|
85
85
|
// Avatar Group Component for displaying multiple avatars
|
|
86
|
-
interface
|
|
87
|
-
|
|
88
|
-
|
|
86
|
+
interface MoonUIAvatarGroupProProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
87
|
+
max?: number;
|
|
88
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
|
|
89
|
+
children?: React.ReactNode;
|
|
89
90
|
overlapOffset?: number;
|
|
90
91
|
}
|
|
91
92
|
|
|
92
|
-
const MoonUIAvatarGroupPro = React.forwardRef<HTMLDivElement,
|
|
93
|
-
({ className,
|
|
94
|
-
const
|
|
95
|
-
const
|
|
93
|
+
const MoonUIAvatarGroupPro = React.forwardRef<HTMLDivElement, MoonUIAvatarGroupProProps>(
|
|
94
|
+
({ className, max = 3, size = "md", children, overlapOffset, ...props }, ref) => {
|
|
95
|
+
const childrenArray = React.Children.toArray(children);
|
|
96
|
+
const visibleChildren = max ? childrenArray.slice(0, max) : childrenArray;
|
|
97
|
+
const remainingCount = max ? Math.max(0, childrenArray.length - max) : 0;
|
|
98
|
+
|
|
99
|
+
// Calculate overlap offset based on size
|
|
100
|
+
const defaultOffsets = {
|
|
101
|
+
xs: -4,
|
|
102
|
+
sm: -6,
|
|
103
|
+
md: -8,
|
|
104
|
+
lg: -10,
|
|
105
|
+
xl: -12,
|
|
106
|
+
"2xl": -16,
|
|
107
|
+
};
|
|
108
|
+
const finalOffset = overlapOffset ?? defaultOffsets[size as keyof typeof defaultOffsets] ?? -8;
|
|
96
109
|
|
|
97
110
|
return (
|
|
98
111
|
<div
|
|
@@ -101,25 +114,27 @@ const MoonUIAvatarGroupPro = React.forwardRef<HTMLDivElement, AvatarGroupProps>(
|
|
|
101
114
|
{...props}
|
|
102
115
|
>
|
|
103
116
|
<div className="flex">
|
|
104
|
-
{
|
|
117
|
+
{visibleChildren.map((child, index) => (
|
|
105
118
|
<div
|
|
106
119
|
key={index}
|
|
107
|
-
className="relative"
|
|
120
|
+
className="relative ring-2 ring-background rounded-full"
|
|
108
121
|
style={{
|
|
109
|
-
marginLeft: index === 0 ? 0 : `${
|
|
110
|
-
zIndex:
|
|
122
|
+
marginLeft: index === 0 ? 0 : `${finalOffset}px`,
|
|
123
|
+
zIndex: visibleChildren.length - index
|
|
111
124
|
}}
|
|
112
125
|
>
|
|
113
|
-
{
|
|
126
|
+
{React.isValidElement(child) && child.type === MoonUIAvatarPro
|
|
127
|
+
? React.cloneElement(child as React.ReactElement<any>, { size })
|
|
128
|
+
: child}
|
|
114
129
|
</div>
|
|
115
130
|
))}
|
|
116
131
|
{remainingCount > 0 && (
|
|
117
132
|
<div
|
|
118
|
-
className="relative z-0"
|
|
119
|
-
style={{ marginLeft: `${
|
|
133
|
+
className="relative z-0 ring-2 ring-background rounded-full"
|
|
134
|
+
style={{ marginLeft: `${finalOffset}px` }}
|
|
120
135
|
>
|
|
121
|
-
<MoonUIAvatarPro
|
|
122
|
-
<MoonUIAvatarFallbackPro>
|
|
136
|
+
<MoonUIAvatarPro size={size} className="bg-muted">
|
|
137
|
+
<MoonUIAvatarFallbackPro className="text-xs font-medium">
|
|
123
138
|
+{remainingCount}
|
|
124
139
|
</MoonUIAvatarFallbackPro>
|
|
125
140
|
</MoonUIAvatarPro>
|
|
@@ -130,9 +145,9 @@ const MoonUIAvatarGroupPro = React.forwardRef<HTMLDivElement, AvatarGroupProps>(
|
|
|
130
145
|
);
|
|
131
146
|
}
|
|
132
147
|
);
|
|
133
|
-
MoonUIAvatarGroupPro.displayName = "
|
|
148
|
+
MoonUIAvatarGroupPro.displayName = "MoonUIAvatarGroupPro";
|
|
134
149
|
|
|
135
|
-
export { MoonUIAvatarPro, MoonUIAvatarImagePro, MoonUIAvatarFallbackPro, MoonUIAvatarGroupPro
|
|
150
|
+
export { MoonUIAvatarPro, MoonUIAvatarImagePro, MoonUIAvatarFallbackPro, MoonUIAvatarGroupPro };
|
|
136
151
|
|
|
137
152
|
// Backward compatibility exports
|
|
138
|
-
export { MoonUIAvatarPro as Avatar, MoonUIAvatarImagePro as AvatarImage, MoonUIAvatarFallbackPro as AvatarFallback };
|
|
153
|
+
export { MoonUIAvatarPro as Avatar, MoonUIAvatarImagePro as AvatarImage, MoonUIAvatarFallbackPro as AvatarFallback, MoonUIAvatarGroupPro as AvatarGroup };
|