@underverse-ui/underverse 0.2.51 → 0.2.52
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.cjs +60 -24
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +8 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.js +60 -24
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -248,14 +248,21 @@ declare const Switch: React$1.FC<SwitchProps>;
|
|
|
248
248
|
|
|
249
249
|
declare const Label: React$1.ForwardRefExoticComponent<React$1.LabelHTMLAttributes<HTMLLabelElement> & VariantProps<(props?: class_variance_authority_types.ClassProp | undefined) => string> & React$1.RefAttributes<HTMLLabelElement>>;
|
|
250
250
|
|
|
251
|
+
type StatusType = "online" | "offline" | "busy" | "away" | "none";
|
|
251
252
|
interface AvatarProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
252
253
|
src?: string;
|
|
253
254
|
alt?: string;
|
|
254
255
|
fallback?: string;
|
|
255
256
|
size?: "sm" | "md" | "lg";
|
|
257
|
+
/** Show status indicator dot */
|
|
258
|
+
showStatus?: boolean;
|
|
259
|
+
/** Status type: online, offline, busy, away, none */
|
|
260
|
+
status?: StatusType;
|
|
261
|
+
/** Hide status dot on hover */
|
|
262
|
+
hideStatusOnHover?: boolean;
|
|
256
263
|
onClick?: () => void;
|
|
257
264
|
}
|
|
258
|
-
declare const Avatar: ({ src, alt, fallback, size, className, onClick, ...props }: AvatarProps) => react_jsx_runtime.JSX.Element;
|
|
265
|
+
declare const Avatar: ({ src, alt, fallback, size, showStatus, status, hideStatusOnHover, className, onClick, ...props }: AvatarProps) => react_jsx_runtime.JSX.Element;
|
|
259
266
|
|
|
260
267
|
interface SkeletonProps {
|
|
261
268
|
className?: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -248,14 +248,21 @@ declare const Switch: React$1.FC<SwitchProps>;
|
|
|
248
248
|
|
|
249
249
|
declare const Label: React$1.ForwardRefExoticComponent<React$1.LabelHTMLAttributes<HTMLLabelElement> & VariantProps<(props?: class_variance_authority_types.ClassProp | undefined) => string> & React$1.RefAttributes<HTMLLabelElement>>;
|
|
250
250
|
|
|
251
|
+
type StatusType = "online" | "offline" | "busy" | "away" | "none";
|
|
251
252
|
interface AvatarProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
252
253
|
src?: string;
|
|
253
254
|
alt?: string;
|
|
254
255
|
fallback?: string;
|
|
255
256
|
size?: "sm" | "md" | "lg";
|
|
257
|
+
/** Show status indicator dot */
|
|
258
|
+
showStatus?: boolean;
|
|
259
|
+
/** Status type: online, offline, busy, away, none */
|
|
260
|
+
status?: StatusType;
|
|
261
|
+
/** Hide status dot on hover */
|
|
262
|
+
hideStatusOnHover?: boolean;
|
|
256
263
|
onClick?: () => void;
|
|
257
264
|
}
|
|
258
|
-
declare const Avatar: ({ src, alt, fallback, size, className, onClick, ...props }: AvatarProps) => react_jsx_runtime.JSX.Element;
|
|
265
|
+
declare const Avatar: ({ src, alt, fallback, size, showStatus, status, hideStatusOnHover, className, onClick, ...props }: AvatarProps) => react_jsx_runtime.JSX.Element;
|
|
259
266
|
|
|
260
267
|
interface SkeletonProps {
|
|
261
268
|
className?: string;
|
package/dist/index.js
CHANGED
|
@@ -2053,13 +2053,36 @@ var sizeClasses = {
|
|
|
2053
2053
|
md: "h-10 w-10 text-base",
|
|
2054
2054
|
lg: "h-14 w-14 text-lg"
|
|
2055
2055
|
};
|
|
2056
|
-
var
|
|
2056
|
+
var statusColors = {
|
|
2057
|
+
online: "bg-success",
|
|
2058
|
+
offline: "bg-muted-foreground",
|
|
2059
|
+
busy: "bg-destructive",
|
|
2060
|
+
away: "bg-warning",
|
|
2061
|
+
none: "bg-transparent"
|
|
2062
|
+
};
|
|
2063
|
+
var statusDotSizes = {
|
|
2064
|
+
sm: "w-2 h-2 border",
|
|
2065
|
+
md: "w-3 h-3 border-2",
|
|
2066
|
+
lg: "w-4 h-4 border-2"
|
|
2067
|
+
};
|
|
2068
|
+
var Avatar = ({
|
|
2069
|
+
src,
|
|
2070
|
+
alt = "avatar",
|
|
2071
|
+
fallback = "?",
|
|
2072
|
+
size = "md",
|
|
2073
|
+
showStatus = true,
|
|
2074
|
+
status = "online",
|
|
2075
|
+
hideStatusOnHover = true,
|
|
2076
|
+
className,
|
|
2077
|
+
onClick,
|
|
2078
|
+
...props
|
|
2079
|
+
}) => {
|
|
2057
2080
|
const hasValidSrc = !!(src && src.trim().length > 0);
|
|
2058
2081
|
return /* @__PURE__ */ jsxs9(
|
|
2059
2082
|
"div",
|
|
2060
2083
|
{
|
|
2061
2084
|
className: cn(
|
|
2062
|
-
"relative inline-flex items-center justify-center overflow-
|
|
2085
|
+
"group relative inline-flex items-center justify-center overflow-visible rounded-full bg-muted text-foreground select-none transition-all duration-200 ease-soft",
|
|
2063
2086
|
onClick && "cursor-pointer hover:ring-2 hover:ring-primary/50 hover:ring-offset-2 hover:shadow-lg active:scale-95",
|
|
2064
2087
|
sizeClasses[size],
|
|
2065
2088
|
className
|
|
@@ -2067,31 +2090,44 @@ var Avatar = ({ src, alt = "avatar", fallback = "?", size = "md", className, onC
|
|
|
2067
2090
|
onClick,
|
|
2068
2091
|
...props,
|
|
2069
2092
|
children: [
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
"
|
|
2093
|
+
/* @__PURE__ */ jsxs9("div", { className: "absolute inset-0 overflow-hidden rounded-full", children: [
|
|
2094
|
+
hasValidSrc && /* @__PURE__ */ jsx12(
|
|
2095
|
+
SmartImage,
|
|
2096
|
+
{
|
|
2097
|
+
src,
|
|
2098
|
+
alt,
|
|
2099
|
+
fill: true,
|
|
2100
|
+
ratioClass: void 0,
|
|
2101
|
+
className: "h-full w-full",
|
|
2102
|
+
roundedClass: "rounded-full",
|
|
2103
|
+
fit: "cover",
|
|
2104
|
+
objectPosition: "center",
|
|
2105
|
+
quality: 80
|
|
2106
|
+
}
|
|
2107
|
+
),
|
|
2108
|
+
!hasValidSrc && /* @__PURE__ */ jsx12("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx12(
|
|
2109
|
+
"span",
|
|
2110
|
+
{
|
|
2111
|
+
className: cn(
|
|
2112
|
+
"font-bold uppercase bg-linear-to-br from-primary to-primary/80 bg-clip-text text-transparent",
|
|
2113
|
+
"transition-all duration-200 animate-fade-in"
|
|
2114
|
+
),
|
|
2115
|
+
children: fallback
|
|
2116
|
+
}
|
|
2117
|
+
) })
|
|
2118
|
+
] }),
|
|
2119
|
+
showStatus && status !== "none" && /* @__PURE__ */ jsx12(
|
|
2120
|
+
"div",
|
|
2086
2121
|
{
|
|
2087
2122
|
className: cn(
|
|
2088
|
-
"
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2123
|
+
"absolute bottom-0 right-0 rounded-full border-background z-10",
|
|
2124
|
+
statusColors[status],
|
|
2125
|
+
statusDotSizes[size],
|
|
2126
|
+
"transition-opacity duration-200",
|
|
2127
|
+
hideStatusOnHover ? "opacity-100 group-hover:opacity-50" : "opacity-100"
|
|
2128
|
+
)
|
|
2092
2129
|
}
|
|
2093
|
-
)
|
|
2094
|
-
/* @__PURE__ */ jsx12("div", { className: "absolute bottom-0 right-0 w-3 h-3 bg-success border-2 border-background rounded-full opacity-0 group-hover:opacity-100 transition-opacity duration-200" })
|
|
2130
|
+
)
|
|
2095
2131
|
]
|
|
2096
2132
|
}
|
|
2097
2133
|
);
|