saha-ui 1.22.0 → 1.22.2
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/components/Avatar/Avatar.types.d.ts +54 -7
- package/dist/components/Avatar/Avatar.types.d.ts.map +1 -1
- package/dist/components/Avatar/index.d.ts +25 -1
- package/dist/components/Avatar/index.d.ts.map +1 -1
- package/dist/components/Avatar/index.js +146 -50
- package/dist/components/Card/Card.types.d.ts +6 -1
- package/dist/components/Card/Card.types.d.ts.map +1 -1
- package/dist/components/Card/index.d.ts.map +1 -1
- package/dist/components/Card/index.js +68 -55
- package/dist/components/Container/Container.d.ts.map +1 -1
- package/dist/components/Container/Container.js +48 -34
- package/dist/components/Container/Container.types.d.ts +4 -1
- package/dist/components/Container/Container.types.d.ts.map +1 -1
- package/dist/components/Field/Field.d.ts.map +1 -1
- package/dist/components/Field/Field.js +138 -126
- package/dist/components/Field/Field.types.d.ts +9 -1
- package/dist/components/Field/Field.types.d.ts.map +1 -1
- package/dist/components/Form/Form.types.d.ts +9 -2
- package/dist/components/Form/Form.types.d.ts.map +1 -1
- package/dist/components/Grid/Grid.d.ts.map +1 -1
- package/dist/components/Grid/Grid.js +69 -66
- package/dist/components/Grid/Grid.types.d.ts +6 -1
- package/dist/components/Grid/Grid.types.d.ts.map +1 -1
- package/dist/components/Item/Item.types.d.ts +6 -1
- package/dist/components/Item/Item.types.d.ts.map +1 -1
- package/dist/components/Item/index.d.ts.map +1 -1
- package/dist/components/Item/index.js +146 -126
- package/dist/components/Label/Label.types.d.ts +6 -1
- package/dist/components/Label/Label.types.d.ts.map +1 -1
- package/dist/components/Label/index.d.ts.map +1 -1
- package/dist/components/Label/index.js +72 -60
- package/dist/components/Masonry/Masonry.types.d.ts +6 -1
- package/dist/components/Masonry/Masonry.types.d.ts.map +1 -1
- package/dist/components/Masonry/index.d.ts.map +1 -1
- package/dist/components/Masonry/index.js +112 -92
- package/dist/components/Paper/Paper.types.d.ts +6 -1
- package/dist/components/Paper/Paper.types.d.ts.map +1 -1
- package/dist/components/Paper/index.d.ts.map +1 -1
- package/dist/components/Paper/index.js +47 -39
- package/dist/components/Section/Section.d.ts.map +1 -1
- package/dist/components/Section/Section.js +56 -47
- package/dist/components/Section/Section.types.d.ts +4 -1
- package/dist/components/Section/Section.types.d.ts.map +1 -1
- package/dist/components/Separator/Separator.types.d.ts +11 -1
- package/dist/components/Separator/Separator.types.d.ts.map +1 -1
- package/dist/components/Separator/index.d.ts.map +1 -1
- package/dist/components/Separator/index.js +53 -37
- package/dist/components/Skeleton/Skeleton.types.d.ts +6 -1
- package/dist/components/Skeleton/Skeleton.types.d.ts.map +1 -1
- package/dist/components/Skeleton/index.d.ts.map +1 -1
- package/dist/components/Skeleton/index.js +71 -57
- package/dist/components/Stack/Stack.d.ts.map +1 -1
- package/dist/components/Stack/Stack.js +47 -40
- package/dist/components/Stack/Stack.types.d.ts +13 -1
- package/dist/components/Stack/Stack.types.d.ts.map +1 -1
- package/dist/components/Tag/Tag.types.d.ts +10 -1
- package/dist/components/Tag/Tag.types.d.ts.map +1 -1
- package/dist/components/Tag/index.d.ts.map +1 -1
- package/dist/components/Tag/index.js +103 -98
- package/dist/components/ToggleGroup/ToggleGroup.styles.d.ts +1 -1
- package/dist/components/ToggleGroup/ToggleGroup.styles.d.ts.map +1 -1
- package/dist/components/ToggleGroup/index.d.ts.map +1 -1
- package/dist/components/ToggleGroup/index.js +52 -45
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +854 -851
- package/package.json +1 -1
|
@@ -2,16 +2,32 @@ import { default as React } from 'react';
|
|
|
2
2
|
export type AvatarSize = "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
|
|
3
3
|
export type AvatarShape = "circle" | "square" | "rounded";
|
|
4
4
|
export type AvatarStatus = "online" | "offline" | "away" | "busy" | "none";
|
|
5
|
+
/**
|
|
6
|
+
* Avatar props - supports both compound component pattern and legacy props pattern
|
|
7
|
+
*
|
|
8
|
+
* Compound pattern:
|
|
9
|
+
* <Avatar>
|
|
10
|
+
* <AvatarImage src="..." alt="..." />
|
|
11
|
+
* <AvatarFallback>JB</AvatarFallback>
|
|
12
|
+
* </Avatar>
|
|
13
|
+
*
|
|
14
|
+
* Legacy pattern:
|
|
15
|
+
* <Avatar src="..." alt="..." initials="JB" />
|
|
16
|
+
*/
|
|
5
17
|
export interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
6
18
|
/**
|
|
7
|
-
* Image source URL
|
|
19
|
+
* Image source URL (legacy pattern)
|
|
8
20
|
*/
|
|
9
|
-
src
|
|
21
|
+
src?: string;
|
|
10
22
|
/**
|
|
11
|
-
* Alt text for accessibility
|
|
23
|
+
* Alt text for accessibility (legacy pattern)
|
|
12
24
|
* @default "Avatar"
|
|
13
25
|
*/
|
|
14
26
|
alt?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Fallback content (e.g., initials) to display when image fails to load (legacy pattern)
|
|
29
|
+
*/
|
|
30
|
+
fallback?: string;
|
|
15
31
|
/**
|
|
16
32
|
* Size of the avatar
|
|
17
33
|
* @default "md"
|
|
@@ -27,10 +43,6 @@ export interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
27
43
|
* @default "none"
|
|
28
44
|
*/
|
|
29
45
|
status?: AvatarStatus;
|
|
30
|
-
/**
|
|
31
|
-
* Initials to display when image fails to load
|
|
32
|
-
*/
|
|
33
|
-
initials?: string;
|
|
34
46
|
/**
|
|
35
47
|
* Whether to show a border
|
|
36
48
|
* @default false
|
|
@@ -41,5 +53,40 @@ export interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
41
53
|
* @default false
|
|
42
54
|
*/
|
|
43
55
|
ring?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Children elements (AvatarImage, AvatarFallback) for compound pattern
|
|
58
|
+
*/
|
|
59
|
+
children?: React.ReactNode;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Avatar image props
|
|
63
|
+
*/
|
|
64
|
+
export interface AvatarImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {
|
|
65
|
+
/**
|
|
66
|
+
* Image source URL
|
|
67
|
+
*/
|
|
68
|
+
src?: string;
|
|
69
|
+
/**
|
|
70
|
+
* Alt text for accessibility
|
|
71
|
+
*/
|
|
72
|
+
alt?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Callback when image fails to load
|
|
75
|
+
*/
|
|
76
|
+
onLoadingStatusChange?: (status: "loading" | "loaded" | "error") => void;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Avatar fallback props
|
|
80
|
+
*/
|
|
81
|
+
export interface AvatarFallbackProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
82
|
+
/**
|
|
83
|
+
* Delay before showing fallback (ms)
|
|
84
|
+
* @default 0
|
|
85
|
+
*/
|
|
86
|
+
delayMs?: number;
|
|
87
|
+
/**
|
|
88
|
+
* Children content (typically initials)
|
|
89
|
+
*/
|
|
90
|
+
children?: React.ReactNode;
|
|
44
91
|
}
|
|
45
92
|
//# sourceMappingURL=Avatar.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.types.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3E,MAAM,WAAW,WAAY,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACvE;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Avatar.types.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3E;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,WAAY,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACvE;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;OAGG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,gBACf,SAAQ,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;IACjD;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,KAAK,IAAI,CAAC;CAC1E;AAED;;GAEG;AACH,MAAM,WAAW,mBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IAC7C;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B"}
|
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
import { AvatarProps } from './Avatar.types';
|
|
2
|
+
import { AvatarProps, AvatarImageProps, AvatarFallbackProps } from './Avatar.types';
|
|
3
|
+
/**
|
|
4
|
+
* Avatar Component
|
|
5
|
+
* Supports both compound component pattern and legacy props pattern
|
|
6
|
+
*
|
|
7
|
+
* Compound pattern:
|
|
8
|
+
* <Avatar>
|
|
9
|
+
* <AvatarImage src="..." alt="..." />
|
|
10
|
+
* <AvatarFallback>JB</AvatarFallback>
|
|
11
|
+
* </Avatar>
|
|
12
|
+
*
|
|
13
|
+
* Legacy pattern:
|
|
14
|
+
* <Avatar src="..." alt="..." initials="JB" />
|
|
15
|
+
*/
|
|
3
16
|
declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<HTMLDivElement>>;
|
|
17
|
+
/**
|
|
18
|
+
* AvatarImage Component
|
|
19
|
+
* Displays the avatar image with loading state handling
|
|
20
|
+
*/
|
|
21
|
+
declare const AvatarImage: React.ForwardRefExoticComponent<AvatarImageProps & React.RefAttributes<HTMLImageElement>>;
|
|
22
|
+
/**
|
|
23
|
+
* AvatarFallback Component
|
|
24
|
+
* Displays fallback content when image fails or is loading
|
|
25
|
+
*/
|
|
26
|
+
declare const AvatarFallback: React.ForwardRefExoticComponent<AvatarFallbackProps & React.RefAttributes<HTMLSpanElement>>;
|
|
4
27
|
export default Avatar;
|
|
28
|
+
export { Avatar, AvatarImage, AvatarFallback };
|
|
5
29
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/index.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAE9E,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AAiBxB;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,MAAM,oFAoHX,CAAC;AAIF;;;GAGG;AACH,QAAA,MAAM,WAAW,2FA4DhB,CAAC;AAIF;;;GAGG;AACH,QAAA,MAAM,cAAc,6FAwDnB,CAAC;AAIF,eAAe,MAAM,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,70 +1,166 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import
|
|
3
|
-
import { cn as
|
|
4
|
-
import { statusVariants as
|
|
5
|
-
import { useAvatar as
|
|
6
|
-
const k =
|
|
1
|
+
import { jsxs as h, jsx as e, Fragment as L } from "react/jsx-runtime";
|
|
2
|
+
import p, { createContext as F, useState as w, useEffect as S, useContext as T } from "react";
|
|
3
|
+
import { cn as d } from "../../lib/utils.js";
|
|
4
|
+
import { statusVariants as N, avatarVariants as A } from "./Avatar.styles.js";
|
|
5
|
+
import { useAvatar as B } from "../../hooks/useAvatar.js";
|
|
6
|
+
const k = F(null), I = () => T(k), P = p.forwardRef(
|
|
7
7
|
({
|
|
8
|
-
src:
|
|
9
|
-
alt:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
bordered:
|
|
15
|
-
ring:
|
|
16
|
-
className:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
8
|
+
src: t,
|
|
9
|
+
alt: c = "Avatar",
|
|
10
|
+
fallback: i,
|
|
11
|
+
size: a = "md",
|
|
12
|
+
shape: u = "circle",
|
|
13
|
+
status: o = "none",
|
|
14
|
+
bordered: r = !1,
|
|
15
|
+
ring: s = !1,
|
|
16
|
+
className: l,
|
|
17
|
+
children: m,
|
|
18
|
+
...n
|
|
19
|
+
}, f) => {
|
|
20
|
+
const [g, v] = w("loading"), y = t !== void 0 || i !== void 0 && !m, {
|
|
21
|
+
showInitials: b,
|
|
22
|
+
bgColor: C,
|
|
23
|
+
initialsText: R,
|
|
24
|
+
imageLoaded: x,
|
|
25
|
+
handleImageLoad: j,
|
|
26
|
+
handleImageError: E
|
|
27
|
+
} = B({
|
|
28
|
+
src: t,
|
|
29
|
+
alt: c,
|
|
30
|
+
initials: i
|
|
30
31
|
});
|
|
31
|
-
return /* @__PURE__ */
|
|
32
|
+
return y ? /* @__PURE__ */ h(
|
|
32
33
|
"div",
|
|
33
34
|
{
|
|
34
|
-
ref:
|
|
35
|
-
className:
|
|
36
|
-
A({ size:
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
ref: f,
|
|
36
|
+
className: d(
|
|
37
|
+
A({ size: a, shape: u, bordered: r, ring: s }),
|
|
38
|
+
b && C,
|
|
39
|
+
b && "text-white",
|
|
40
|
+
l
|
|
40
41
|
),
|
|
41
|
-
...
|
|
42
|
+
...n,
|
|
42
43
|
children: [
|
|
43
|
-
!t && /* @__PURE__ */
|
|
44
|
-
/* @__PURE__ */
|
|
44
|
+
!b && t && /* @__PURE__ */ h(L, { children: [
|
|
45
|
+
/* @__PURE__ */ e(
|
|
45
46
|
"img",
|
|
46
47
|
{
|
|
47
|
-
src:
|
|
48
|
-
alt:
|
|
49
|
-
className:
|
|
48
|
+
src: t,
|
|
49
|
+
alt: c,
|
|
50
|
+
className: d(
|
|
50
51
|
"w-full h-full object-cover transition-opacity duration-300",
|
|
51
|
-
|
|
52
|
+
x ? "opacity-100" : "opacity-0"
|
|
52
53
|
),
|
|
53
|
-
onLoad:
|
|
54
|
-
onError:
|
|
54
|
+
onLoad: j,
|
|
55
|
+
onError: E
|
|
55
56
|
}
|
|
56
57
|
),
|
|
57
|
-
!
|
|
58
|
+
!x && /* @__PURE__ */ e("div", { className: "absolute inset-0 bg-muted animate-pulse" })
|
|
58
59
|
] }),
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
/* @__PURE__ */
|
|
60
|
+
b && /* @__PURE__ */ e("span", { className: "relative z-10 font-bold tracking-tight", children: R }),
|
|
61
|
+
o !== "none" && /* @__PURE__ */ e("span", { className: d(N({ size: a, status: o })) }),
|
|
62
|
+
/* @__PURE__ */ e("div", { className: "absolute inset-0 bg-gradient-to-br from-white/0 via-white/0 to-black/0 group-hover:from-white/10 group-hover:to-black/5 transition-all duration-300 pointer-events-none" })
|
|
62
63
|
]
|
|
63
64
|
}
|
|
65
|
+
) : /* @__PURE__ */ e(
|
|
66
|
+
k.Provider,
|
|
67
|
+
{
|
|
68
|
+
value: { imageLoadingStatus: g, setImageLoadingStatus: v },
|
|
69
|
+
children: /* @__PURE__ */ h(
|
|
70
|
+
"div",
|
|
71
|
+
{
|
|
72
|
+
ref: f,
|
|
73
|
+
className: d(
|
|
74
|
+
A({ size: a, shape: u, bordered: r, ring: s }),
|
|
75
|
+
l
|
|
76
|
+
),
|
|
77
|
+
...n,
|
|
78
|
+
children: [
|
|
79
|
+
m,
|
|
80
|
+
o !== "none" && /* @__PURE__ */ e("span", { className: d(N({ size: a, status: o })) }),
|
|
81
|
+
/* @__PURE__ */ e("div", { className: "absolute inset-0 bg-gradient-to-br from-white/0 via-white/0 to-black/0 group-hover:from-white/10 group-hover:to-black/5 transition-all duration-300 pointer-events-none" })
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
)
|
|
85
|
+
}
|
|
64
86
|
);
|
|
65
87
|
}
|
|
66
88
|
);
|
|
67
|
-
|
|
89
|
+
P.displayName = "Avatar";
|
|
90
|
+
const V = p.forwardRef(
|
|
91
|
+
({ src: t, alt: c = "Avatar", className: i, onLoadingStatusChange: a, ...u }, o) => {
|
|
92
|
+
const r = I(), [s, l] = w("loading"), m = () => {
|
|
93
|
+
l("loaded"), r?.setImageLoadingStatus("loaded"), a?.("loaded");
|
|
94
|
+
}, n = () => {
|
|
95
|
+
l("error"), r?.setImageLoadingStatus("error"), a?.("error");
|
|
96
|
+
};
|
|
97
|
+
return S(() => {
|
|
98
|
+
t ? (l("loading"), r?.setImageLoadingStatus("loading"), a?.("loading")) : (l("error"), r?.setImageLoadingStatus("error"));
|
|
99
|
+
}, [t]), !t || s === "error" ? null : /* @__PURE__ */ h(L, { children: [
|
|
100
|
+
/* @__PURE__ */ e(
|
|
101
|
+
"img",
|
|
102
|
+
{
|
|
103
|
+
ref: o,
|
|
104
|
+
src: t,
|
|
105
|
+
alt: c,
|
|
106
|
+
className: d(
|
|
107
|
+
"w-full h-full object-cover transition-opacity duration-300",
|
|
108
|
+
s === "loaded" ? "opacity-100" : "opacity-0",
|
|
109
|
+
i
|
|
110
|
+
),
|
|
111
|
+
onLoad: m,
|
|
112
|
+
onError: n,
|
|
113
|
+
...u
|
|
114
|
+
}
|
|
115
|
+
),
|
|
116
|
+
s === "loading" && /* @__PURE__ */ e("div", { className: "absolute inset-0 bg-muted animate-pulse" })
|
|
117
|
+
] });
|
|
118
|
+
}
|
|
119
|
+
);
|
|
120
|
+
V.displayName = "AvatarImage";
|
|
121
|
+
const _ = p.forwardRef(
|
|
122
|
+
({ delayMs: t = 0, className: c, children: i, ...a }, u) => {
|
|
123
|
+
const o = I(), [r, s] = w(t === 0);
|
|
124
|
+
return S(() => {
|
|
125
|
+
if (t > 0) {
|
|
126
|
+
const n = setTimeout(() => s(!0), t);
|
|
127
|
+
return () => clearTimeout(n);
|
|
128
|
+
}
|
|
129
|
+
}, [t]), r && (!o || o.imageLoadingStatus === "error") ? /* @__PURE__ */ e(
|
|
130
|
+
"span",
|
|
131
|
+
{
|
|
132
|
+
ref: u,
|
|
133
|
+
className: d(
|
|
134
|
+
"absolute inset-0 flex items-center justify-center font-bold tracking-tight text-white",
|
|
135
|
+
(() => {
|
|
136
|
+
if (!i) return "bg-muted";
|
|
137
|
+
const n = String(i), f = [
|
|
138
|
+
"bg-red-500",
|
|
139
|
+
"bg-blue-500",
|
|
140
|
+
"bg-green-500",
|
|
141
|
+
"bg-purple-500",
|
|
142
|
+
"bg-pink-500",
|
|
143
|
+
"bg-indigo-500",
|
|
144
|
+
"bg-cyan-500",
|
|
145
|
+
"bg-orange-500"
|
|
146
|
+
];
|
|
147
|
+
let g = 0;
|
|
148
|
+
for (let v = 0; v < n.length; v++)
|
|
149
|
+
g = n.charCodeAt(v) + ((g << 5) - g);
|
|
150
|
+
return f[Math.abs(g) % f.length];
|
|
151
|
+
})(),
|
|
152
|
+
c
|
|
153
|
+
),
|
|
154
|
+
...a,
|
|
155
|
+
children: i
|
|
156
|
+
}
|
|
157
|
+
) : null;
|
|
158
|
+
}
|
|
159
|
+
);
|
|
160
|
+
_.displayName = "AvatarFallback";
|
|
68
161
|
export {
|
|
69
|
-
|
|
162
|
+
P as Avatar,
|
|
163
|
+
_ as AvatarFallback,
|
|
164
|
+
V as AvatarImage,
|
|
165
|
+
P as default
|
|
70
166
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
export type CardVariant = "default" | "glass" | "glass-strong" | "glass-subtle" | "bordered";
|
|
3
|
-
export type CardPadding = "none" | "sm" | "md" | "lg" | "xl";
|
|
3
|
+
export type CardPadding = "none" | "sm" | "md" | "lg" | "xl" | number | string;
|
|
4
4
|
export type CardRounded = "sm" | "md" | "lg" | "xl" | "2xl";
|
|
5
5
|
export interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
6
6
|
/**
|
|
@@ -14,7 +14,12 @@ export interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
14
14
|
variant?: CardVariant;
|
|
15
15
|
/**
|
|
16
16
|
* Padding size applied to the card
|
|
17
|
+
* Accepts predefined tokens, numbers (px), or string with units
|
|
17
18
|
* @default "md"
|
|
19
|
+
* @example
|
|
20
|
+
* <Card padding="lg">Token padding</Card>
|
|
21
|
+
* <Card padding={24}>24px padding</Card>
|
|
22
|
+
* <Card padding="2rem">Custom padding</Card>
|
|
18
23
|
*/
|
|
19
24
|
padding?: CardPadding;
|
|
20
25
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.types.d.ts","sourceRoot":"","sources":["../../../src/components/Card/Card.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,OAAO,GACP,cAAc,GACd,cAAc,GACd,UAAU,CAAC;AACf,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"Card.types.d.ts","sourceRoot":"","sources":["../../../src/components/Card/Card.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,OAAO,GACP,cAAc,GACd,cAAc,GACd,UAAU,CAAC;AACf,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAC/E,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;AAE5D,MAAM,WAAW,SAAU,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACrE;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Card/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EACL,SAAS,EACT,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC;AAElE,eAAO,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Card/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EACL,SAAS,EACT,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC;AAElE,eAAO,MAAM,IAAI,kFAiDhB,CAAC;AAIF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,wFAStB,CAAC;AAIF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,2FAerB,CAAC;AAIF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,mGAgB1B,CAAC;AAIH;;;;;GAKG;AACH,eAAO,MAAM,WAAW,yFASvB,CAAC;AAIF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,wFAetB,CAAC;AAIF,eAAe,IAAI,CAAC"}
|
|
@@ -1,87 +1,100 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import
|
|
3
|
-
import { cn as
|
|
4
|
-
import { cardVariants as
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import m from "react";
|
|
3
|
+
import { cn as d } from "../../lib/utils.js";
|
|
4
|
+
import { cardVariants as N } from "./Card.styles.js";
|
|
5
5
|
import { Slot as n } from "../../lib/Slot.js";
|
|
6
|
-
const
|
|
6
|
+
const x = m.forwardRef(
|
|
7
7
|
({
|
|
8
8
|
children: r,
|
|
9
|
-
variant:
|
|
10
|
-
padding:
|
|
9
|
+
variant: o,
|
|
10
|
+
padding: e,
|
|
11
11
|
rounded: t,
|
|
12
|
-
hoverable:
|
|
13
|
-
className:
|
|
14
|
-
onClick:
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
{
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
12
|
+
hoverable: s,
|
|
13
|
+
className: f,
|
|
14
|
+
onClick: c,
|
|
15
|
+
style: l,
|
|
16
|
+
...p
|
|
17
|
+
}, C) => {
|
|
18
|
+
const i = typeof e == "string" && ["none", "sm", "md", "lg", "xl"].includes(e), u = !i && e !== void 0 ? {
|
|
19
|
+
padding: typeof e == "number" ? `${e}px` : e,
|
|
20
|
+
...l
|
|
21
|
+
} : l;
|
|
22
|
+
return /* @__PURE__ */ a(
|
|
23
|
+
"div",
|
|
24
|
+
{
|
|
25
|
+
ref: C,
|
|
26
|
+
className: d(
|
|
27
|
+
N({
|
|
28
|
+
variant: o,
|
|
29
|
+
padding: i ? e : void 0,
|
|
30
|
+
rounded: t,
|
|
31
|
+
hoverable: s
|
|
32
|
+
}),
|
|
33
|
+
f
|
|
34
|
+
),
|
|
35
|
+
style: u,
|
|
36
|
+
onClick: c,
|
|
37
|
+
...p,
|
|
38
|
+
children: /* @__PURE__ */ a("div", { className: "relative", children: r })
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
}
|
|
29
42
|
);
|
|
30
|
-
|
|
31
|
-
const
|
|
32
|
-
({ children: r, className:
|
|
43
|
+
x.displayName = "Card";
|
|
44
|
+
const y = m.forwardRef(
|
|
45
|
+
({ children: r, className: o = "", asChild: e = !1 }, t) => /* @__PURE__ */ a(e ? n : "div", { ref: t, className: d("mb-4", o), children: r })
|
|
33
46
|
);
|
|
34
|
-
|
|
35
|
-
const
|
|
36
|
-
({ children: r, className:
|
|
37
|
-
|
|
47
|
+
y.displayName = "CardHeader";
|
|
48
|
+
const v = m.forwardRef(
|
|
49
|
+
({ children: r, className: o = "", asChild: e = !1 }, t) => /* @__PURE__ */ a(
|
|
50
|
+
e ? n : "h3",
|
|
38
51
|
{
|
|
39
52
|
ref: t,
|
|
40
|
-
className:
|
|
53
|
+
className: d(
|
|
41
54
|
"text-xl font-semibold text-foreground tracking-tight",
|
|
42
|
-
|
|
55
|
+
o
|
|
43
56
|
),
|
|
44
57
|
children: r
|
|
45
58
|
}
|
|
46
59
|
)
|
|
47
60
|
);
|
|
48
|
-
|
|
49
|
-
const
|
|
50
|
-
|
|
61
|
+
v.displayName = "CardTitle";
|
|
62
|
+
const R = m.forwardRef(({ children: r, className: o = "", asChild: e = !1 }, t) => /* @__PURE__ */ a(
|
|
63
|
+
e ? n : "p",
|
|
51
64
|
{
|
|
52
65
|
ref: t,
|
|
53
|
-
className:
|
|
66
|
+
className: d(
|
|
54
67
|
"text-sm text-muted-foreground mt-1.5 leading-relaxed",
|
|
55
|
-
|
|
68
|
+
o
|
|
56
69
|
),
|
|
57
70
|
children: r
|
|
58
71
|
}
|
|
59
72
|
));
|
|
60
|
-
|
|
61
|
-
const
|
|
62
|
-
({ children: r, className:
|
|
73
|
+
R.displayName = "CardDescription";
|
|
74
|
+
const b = m.forwardRef(
|
|
75
|
+
({ children: r, className: o = "", asChild: e = !1 }, t) => /* @__PURE__ */ a(e ? n : "div", { ref: t, className: d("text-foreground", o), children: r })
|
|
63
76
|
);
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
({ children: r, className:
|
|
67
|
-
|
|
77
|
+
b.displayName = "CardContent";
|
|
78
|
+
const g = m.forwardRef(
|
|
79
|
+
({ children: r, className: o = "", asChild: e = !1 }, t) => /* @__PURE__ */ a(
|
|
80
|
+
e ? n : "div",
|
|
68
81
|
{
|
|
69
82
|
ref: t,
|
|
70
|
-
className:
|
|
83
|
+
className: d(
|
|
71
84
|
"mt-4 pt-4 border-t border-border/50 flex items-center gap-2",
|
|
72
|
-
|
|
85
|
+
o
|
|
73
86
|
),
|
|
74
87
|
children: r
|
|
75
88
|
}
|
|
76
89
|
)
|
|
77
90
|
);
|
|
78
|
-
|
|
91
|
+
g.displayName = "CardFooter";
|
|
79
92
|
export {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
93
|
+
x as Card,
|
|
94
|
+
b as CardContent,
|
|
95
|
+
R as CardDescription,
|
|
96
|
+
g as CardFooter,
|
|
97
|
+
y as CardHeader,
|
|
98
|
+
v as CardTitle,
|
|
99
|
+
x as default
|
|
87
100
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../../src/components/Container/Container.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../../src/components/Container/Container.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,eAAO,MAAM,SAAS,uFA2DrB,CAAC"}
|
|
@@ -1,40 +1,54 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import
|
|
3
|
-
import { Slot as
|
|
4
|
-
import { cn as
|
|
5
|
-
import { containerVariants as
|
|
6
|
-
const
|
|
1
|
+
import { jsx as x } from "react/jsx-runtime";
|
|
2
|
+
import v from "react";
|
|
3
|
+
import { Slot as C } from "../../lib/Slot.js";
|
|
4
|
+
import { cn as N } from "../../lib/utils.js";
|
|
5
|
+
import { containerVariants as R } from "./Container.styles.js";
|
|
6
|
+
const S = v.forwardRef(
|
|
7
7
|
({
|
|
8
|
-
className:
|
|
9
|
-
size:
|
|
8
|
+
className: t,
|
|
9
|
+
size: a = "lg",
|
|
10
10
|
padding: e = "default",
|
|
11
|
-
center:
|
|
11
|
+
center: l = !0,
|
|
12
12
|
gutter: i = !0,
|
|
13
|
-
asChild:
|
|
14
|
-
children:
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"aria-
|
|
18
|
-
"aria-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
{
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
13
|
+
asChild: m = !1,
|
|
14
|
+
children: s,
|
|
15
|
+
style: o,
|
|
16
|
+
role: n,
|
|
17
|
+
"aria-label": f,
|
|
18
|
+
"aria-labelledby": b,
|
|
19
|
+
"aria-describedby": c,
|
|
20
|
+
...u
|
|
21
|
+
}, y) => {
|
|
22
|
+
const p = m ? C : "div", r = typeof e == "string" && ["none", "sm", "default", "lg"].includes(e), d = !r && e !== void 0 ? {
|
|
23
|
+
paddingTop: typeof e == "number" ? `${e}px` : e,
|
|
24
|
+
paddingBottom: typeof e == "number" ? `${e}px` : e,
|
|
25
|
+
...o
|
|
26
|
+
} : o;
|
|
27
|
+
return /* @__PURE__ */ x(
|
|
28
|
+
p,
|
|
29
|
+
{
|
|
30
|
+
ref: y,
|
|
31
|
+
className: N(
|
|
32
|
+
R({
|
|
33
|
+
size: a,
|
|
34
|
+
padding: r ? e : void 0,
|
|
35
|
+
center: l,
|
|
36
|
+
gutter: i
|
|
37
|
+
}),
|
|
38
|
+
t
|
|
39
|
+
),
|
|
40
|
+
style: d,
|
|
41
|
+
role: n,
|
|
42
|
+
"aria-label": f,
|
|
43
|
+
"aria-labelledby": b,
|
|
44
|
+
"aria-describedby": c,
|
|
45
|
+
...u,
|
|
46
|
+
children: s
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
}
|
|
36
50
|
);
|
|
37
|
-
|
|
51
|
+
S.displayName = "Container";
|
|
38
52
|
export {
|
|
39
|
-
|
|
53
|
+
S as Container
|
|
40
54
|
};
|
|
@@ -10,11 +10,14 @@ export type ContainerSize = "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "full";
|
|
|
10
10
|
/**
|
|
11
11
|
* Padding variants for the Container component
|
|
12
12
|
* Controls the vertical padding
|
|
13
|
+
* Accepts predefined tokens, numbers (px), or string with units
|
|
13
14
|
* @example
|
|
14
15
|
* <Container padding="none">No padding</Container>
|
|
15
16
|
* <Container padding="lg">Large padding</Container>
|
|
17
|
+
* <Container padding={24}>24px padding</Container>
|
|
18
|
+
* <Container padding="2rem">Custom padding</Container>
|
|
16
19
|
*/
|
|
17
|
-
export type ContainerPadding = "none" | "sm" | "default" | "lg";
|
|
20
|
+
export type ContainerPadding = "none" | "sm" | "default" | "lg" | number | string;
|
|
18
21
|
/**
|
|
19
22
|
* Props for the Container component
|
|
20
23
|
*
|