asterui 0.12.16 → 0.12.18
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/Card.d.ts +14 -2
- package/dist/components/Checkbox.d.ts +3 -1
- package/dist/components/Form.d.ts +7 -1
- package/dist/components/Input.d.ts +10 -2
- package/dist/components/Select.d.ts +8 -0
- package/dist/index.d.ts +0 -2
- package/dist/index.js +134 -136
- package/dist/index.js.map +1 -1
- package/dist/index10.js +70 -65
- package/dist/index10.js.map +1 -1
- package/dist/index100.js +43 -11
- package/dist/index100.js.map +1 -1
- package/dist/index101.js +11 -44
- package/dist/index101.js.map +1 -1
- package/dist/index102.js +12 -10
- package/dist/index102.js.map +1 -1
- package/dist/index103.js +7 -14
- package/dist/index103.js.map +1 -1
- package/dist/index104.js +12 -7
- package/dist/index104.js.map +1 -1
- package/dist/index105.js +29 -11
- package/dist/index105.js.map +1 -1
- package/dist/index106.js +16 -29
- package/dist/index106.js.map +1 -1
- package/dist/index13.js +86 -68
- package/dist/index13.js.map +1 -1
- package/dist/index34.js +198 -158
- package/dist/index34.js.map +1 -1
- package/dist/index42.js +185 -148
- package/dist/index42.js.map +1 -1
- package/dist/index43.js +19 -19
- package/dist/index43.js.map +1 -1
- package/dist/index46.js +134 -18
- package/dist/index46.js.map +1 -1
- package/dist/index47.js +10 -134
- package/dist/index47.js.map +1 -1
- package/dist/index48.js +35 -13
- package/dist/index48.js.map +1 -1
- package/dist/index49.js +34 -35
- package/dist/index49.js.map +1 -1
- package/dist/index50.js +81 -34
- package/dist/index50.js.map +1 -1
- package/dist/index51.js +166 -71
- package/dist/index51.js.map +1 -1
- package/dist/index52.js +144 -167
- package/dist/index52.js.map +1 -1
- package/dist/index53.js +11 -152
- package/dist/index53.js.map +1 -1
- package/dist/index54.js +20 -10
- package/dist/index54.js.map +1 -1
- package/dist/index55.js +14 -22
- package/dist/index55.js.map +1 -1
- package/dist/index56.js +7 -14
- package/dist/index56.js.map +1 -1
- package/dist/index57.js +333 -6
- package/dist/index57.js.map +1 -1
- package/dist/index58.js +47 -334
- package/dist/index58.js.map +1 -1
- package/dist/index59.js +122 -47
- package/dist/index59.js.map +1 -1
- package/dist/index60.js +108 -120
- package/dist/index60.js.map +1 -1
- package/dist/index61.js +167 -107
- package/dist/index61.js.map +1 -1
- package/dist/index62.js +29 -167
- package/dist/index62.js.map +1 -1
- package/dist/index63.js +120 -30
- package/dist/index63.js.map +1 -1
- package/dist/index64.js +80 -116
- package/dist/index64.js.map +1 -1
- package/dist/index65.js +19 -85
- package/dist/index65.js.map +1 -1
- package/dist/index66.js +73 -19
- package/dist/index66.js.map +1 -1
- package/dist/index67.js +54 -71
- package/dist/index67.js.map +1 -1
- package/dist/index68.js +44 -56
- package/dist/index68.js.map +1 -1
- package/dist/index69.js +49 -42
- package/dist/index69.js.map +1 -1
- package/dist/index70.js +121 -50
- package/dist/index70.js.map +1 -1
- package/dist/index71.js +102 -118
- package/dist/index71.js.map +1 -1
- package/dist/index72.js +72 -105
- package/dist/index72.js.map +1 -1
- package/dist/index73.js +68 -41
- package/dist/index73.js.map +1 -1
- package/dist/index74.js +19 -66
- package/dist/index74.js.map +1 -1
- package/dist/index75.js +55 -18
- package/dist/index75.js.map +1 -1
- package/dist/index76.js +251 -55
- package/dist/index76.js.map +1 -1
- package/dist/index77.js +22 -254
- package/dist/index77.js.map +1 -1
- package/dist/index78.js +31 -22
- package/dist/index78.js.map +1 -1
- package/dist/index79.js +93 -30
- package/dist/index79.js.map +1 -1
- package/dist/index80.js +324 -89
- package/dist/index80.js.map +1 -1
- package/dist/index81.js +73 -322
- package/dist/index81.js.map +1 -1
- package/dist/index82.js +39 -79
- package/dist/index82.js.map +1 -1
- package/dist/index83.js +23 -40
- package/dist/index83.js.map +1 -1
- package/dist/index84.js +93 -21
- package/dist/index84.js.map +1 -1
- package/dist/index85.js +148 -87
- package/dist/index85.js.map +1 -1
- package/dist/index86.js +152 -147
- package/dist/index86.js.map +1 -1
- package/dist/index87.js +63 -159
- package/dist/index87.js.map +1 -1
- package/dist/index88.js +35 -65
- package/dist/index88.js.map +1 -1
- package/dist/index89.js +234 -35
- package/dist/index89.js.map +1 -1
- package/dist/index90.js +31 -231
- package/dist/index90.js.map +1 -1
- package/dist/index91.js +210 -34
- package/dist/index91.js.map +1 -1
- package/dist/index92.js +198 -195
- package/dist/index92.js.map +1 -1
- package/dist/index93.js +241 -159
- package/dist/index93.js.map +1 -1
- package/dist/index94.js +166 -283
- package/dist/index94.js.map +1 -1
- package/dist/index95.js +253 -173
- package/dist/index95.js.map +1 -1
- package/dist/index96.js +14 -258
- package/dist/index96.js.map +1 -1
- package/dist/index97.js +31 -12
- package/dist/index97.js.map +1 -1
- package/dist/index98.js +5 -32
- package/dist/index98.js.map +1 -1
- package/dist/index99.js +13 -5
- package/dist/index99.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/Label.d.ts +0 -15
- package/dist/index107.js +0 -21
- package/dist/index107.js.map +0 -1
package/dist/index106.js
CHANGED
|
@@ -1,34 +1,21 @@
|
|
|
1
|
-
import { useState as
|
|
2
|
-
function
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return l(() => {
|
|
15
|
-
const e = u ?? window;
|
|
16
|
-
return o === "keydown" ? (e.addEventListener("keydown", t), e.addEventListener("keyup", s)) : e.addEventListener("keyup", t), () => {
|
|
17
|
-
e.removeEventListener("keydown", t), e.removeEventListener("keyup", s);
|
|
1
|
+
import { useState as t, useEffect as d } from "react";
|
|
2
|
+
function r() {
|
|
3
|
+
const [i, n] = t(() => typeof window > "u" ? { width: 0, height: 0 } : {
|
|
4
|
+
width: window.innerWidth,
|
|
5
|
+
height: window.innerHeight
|
|
6
|
+
});
|
|
7
|
+
return d(() => {
|
|
8
|
+
if (typeof window > "u") return;
|
|
9
|
+
const e = () => {
|
|
10
|
+
n({
|
|
11
|
+
width: window.innerWidth,
|
|
12
|
+
height: window.innerHeight
|
|
13
|
+
});
|
|
18
14
|
};
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
function y(n, f, u = {}) {
|
|
22
|
-
const { target: o, event: r = "keydown", preventDefault: a = !1 } = u;
|
|
23
|
-
l(() => {
|
|
24
|
-
const d = o ?? window, t = (s) => {
|
|
25
|
-
s.key === n && (a && s.preventDefault(), f(s));
|
|
26
|
-
};
|
|
27
|
-
return d.addEventListener(r, t), () => d.removeEventListener(r, t);
|
|
28
|
-
}, [o, n, f, r, a]);
|
|
15
|
+
return window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
|
|
16
|
+
}, []), i;
|
|
29
17
|
}
|
|
30
18
|
export {
|
|
31
|
-
|
|
32
|
-
y as useKeyPressCallback
|
|
19
|
+
r as useWindowSize
|
|
33
20
|
};
|
|
34
21
|
//# sourceMappingURL=index106.js.map
|
package/dist/index106.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index106.js","sources":["../src/hooks/
|
|
1
|
+
{"version":3,"file":"index106.js","sources":["../src/hooks/useWindowSize.ts"],"sourcesContent":["import { useState, useEffect } from 'react'\n\nexport interface WindowSize {\n width: number\n height: number\n}\n\n/**\n * Hook that tracks window dimensions.\n * Updates on window resize.\n *\n * @returns Object with current width and height\n *\n * @example\n * const { width, height } = useWindowSize()\n *\n * return (\n * <div>\n * Window: {width} x {height}\n * {width < 768 && <MobileNav />}\n * </div>\n * )\n */\nexport function useWindowSize(): WindowSize {\n const [windowSize, setWindowSize] = useState<WindowSize>(() => {\n if (typeof window === 'undefined') {\n return { width: 0, height: 0 }\n }\n return {\n width: window.innerWidth,\n height: window.innerHeight,\n }\n })\n\n useEffect(() => {\n if (typeof window === 'undefined') return\n\n const handleResize = () => {\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n })\n }\n\n window.addEventListener('resize', handleResize)\n return () => window.removeEventListener('resize', handleResize)\n }, [])\n\n return windowSize\n}\n"],"names":["useWindowSize","windowSize","setWindowSize","useState","useEffect","handleResize"],"mappings":";AAuBO,SAASA,IAA4B;AAC1C,QAAM,CAACC,GAAYC,CAAa,IAAIC,EAAqB,MACnD,OAAO,SAAW,MACb,EAAE,OAAO,GAAG,QAAQ,EAAA,IAEtB;AAAA,IACL,OAAO,OAAO;AAAA,IACd,QAAQ,OAAO;AAAA,EAAA,CAElB;AAED,SAAAC,EAAU,MAAM;AACd,QAAI,OAAO,SAAW,IAAa;AAEnC,UAAMC,IAAe,MAAM;AACzB,MAAAH,EAAc;AAAA,QACZ,OAAO,OAAO;AAAA,QACd,QAAQ,OAAO;AAAA,MAAA,CAChB;AAAA,IACH;AAEA,kBAAO,iBAAiB,UAAUG,CAAY,GACvC,MAAM,OAAO,oBAAoB,UAAUA,CAAY;AAAA,EAChE,GAAG,CAAA,CAAE,GAEEJ;AACT;"}
|
package/dist/index13.js
CHANGED
|
@@ -1,98 +1,116 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
function
|
|
3
|
-
const
|
|
1
|
+
import { jsxs as s, jsx as e, Fragment as o } from "react/jsx-runtime";
|
|
2
|
+
function y({ children: d, hoverable: a = !1, className: l = "", style: c, ...n }) {
|
|
3
|
+
const m = [
|
|
4
4
|
"p-6 border border-base-content/10",
|
|
5
5
|
a && "cursor-pointer hover:shadow-md transition-shadow",
|
|
6
|
-
|
|
6
|
+
l
|
|
7
7
|
].filter(Boolean).join(" ");
|
|
8
|
-
return /* @__PURE__ */
|
|
8
|
+
return /* @__PURE__ */ e("div", { className: m, style: c, ...n, children: d });
|
|
9
9
|
}
|
|
10
|
-
function
|
|
11
|
-
children:
|
|
10
|
+
function C({ avatar: d, title: a, description: l, className: c = "", ...n }) {
|
|
11
|
+
return /* @__PURE__ */ s("div", { className: `flex gap-4 ${c}`, ...n, children: [
|
|
12
|
+
d && /* @__PURE__ */ e("div", { className: "flex-shrink-0", children: d }),
|
|
13
|
+
/* @__PURE__ */ s("div", { className: "flex-1 min-w-0", children: [
|
|
14
|
+
a && /* @__PURE__ */ e("div", { className: "font-medium", children: a }),
|
|
15
|
+
l && /* @__PURE__ */ e("div", { className: "text-sm opacity-70 mt-1", children: l })
|
|
16
|
+
] })
|
|
17
|
+
] });
|
|
18
|
+
}
|
|
19
|
+
function M({
|
|
20
|
+
children: d,
|
|
12
21
|
title: a,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
extra: l,
|
|
23
|
+
cover: c,
|
|
24
|
+
actions: n,
|
|
25
|
+
className: m = "",
|
|
26
|
+
style: h,
|
|
27
|
+
size: t,
|
|
28
|
+
bordered: b = !0,
|
|
29
|
+
side: k = !1,
|
|
30
|
+
imageFull: f = !1,
|
|
31
|
+
actionsJustify: N = "end",
|
|
32
|
+
loading: g = !1,
|
|
33
|
+
hoverable: j = !1,
|
|
34
|
+
avatar: r,
|
|
25
35
|
description: i,
|
|
26
|
-
...
|
|
36
|
+
...u
|
|
27
37
|
}) {
|
|
28
|
-
const
|
|
38
|
+
const v = [
|
|
29
39
|
"card",
|
|
30
40
|
"bg-base-100",
|
|
31
|
-
|
|
41
|
+
t && {
|
|
32
42
|
xs: "card-xs",
|
|
33
43
|
sm: "card-sm",
|
|
34
44
|
md: "card-md",
|
|
35
45
|
lg: "card-lg",
|
|
36
46
|
xl: "card-xl"
|
|
37
|
-
}[
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
47
|
+
}[t],
|
|
48
|
+
// Don't add border when imageFull is used (it breaks the overlay effect)
|
|
49
|
+
b && !f && "border border-base-content/10 shadow-sm",
|
|
50
|
+
k && "card-side",
|
|
51
|
+
f && "image-full shadow-sm",
|
|
52
|
+
j && "transition-shadow hover:shadow-lg cursor-pointer",
|
|
53
|
+
m
|
|
54
|
+
].filter(Boolean).join(" "), w = {
|
|
44
55
|
start: "justify-start",
|
|
45
56
|
center: "justify-center",
|
|
46
57
|
end: "justify-end"
|
|
47
58
|
};
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
/* @__PURE__ */ s("div", { className: "
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
/* @__PURE__ */ s(
|
|
60
|
-
|
|
61
|
-
/* @__PURE__ */ s("div", { className: "
|
|
62
|
-
|
|
63
|
-
|
|
59
|
+
if (g)
|
|
60
|
+
return /* @__PURE__ */ s("div", { className: v, style: h, ...u, children: [
|
|
61
|
+
c && /* @__PURE__ */ e("figure", { children: /* @__PURE__ */ e("div", { className: "skeleton h-48 w-full rounded-none" }) }),
|
|
62
|
+
/* @__PURE__ */ s("div", { className: "card-body", children: [
|
|
63
|
+
(r || a) && /* @__PURE__ */ s("div", { className: "flex gap-4 mb-4", children: [
|
|
64
|
+
r && /* @__PURE__ */ e("div", { className: "skeleton w-12 h-12 rounded-full flex-shrink-0" }),
|
|
65
|
+
/* @__PURE__ */ s("div", { className: "flex-1 space-y-2", children: [
|
|
66
|
+
/* @__PURE__ */ e("div", { className: "skeleton h-6 w-2/3" }),
|
|
67
|
+
i && /* @__PURE__ */ e("div", { className: "skeleton h-4 w-full" })
|
|
68
|
+
] })
|
|
69
|
+
] }),
|
|
70
|
+
!r && !a && /* @__PURE__ */ s(o, { children: [
|
|
71
|
+
/* @__PURE__ */ e("div", { className: "skeleton h-6 w-2/3 mb-4" }),
|
|
72
|
+
/* @__PURE__ */ s("div", { className: "space-y-2", children: [
|
|
73
|
+
/* @__PURE__ */ e("div", { className: "skeleton h-4 w-full" }),
|
|
74
|
+
/* @__PURE__ */ e("div", { className: "skeleton h-4 w-5/6" }),
|
|
75
|
+
/* @__PURE__ */ e("div", { className: "skeleton h-4 w-4/6" })
|
|
76
|
+
] })
|
|
77
|
+
] }),
|
|
78
|
+
n && /* @__PURE__ */ s("div", { className: `card-actions ${w[N]} mt-4`, children: [
|
|
79
|
+
/* @__PURE__ */ e("div", { className: "skeleton h-10 w-20" }),
|
|
80
|
+
/* @__PURE__ */ e("div", { className: "skeleton h-10 w-20" })
|
|
64
81
|
] })
|
|
65
|
-
] }),
|
|
66
|
-
c && /* @__PURE__ */ e("div", { className: `card-actions ${u[t]} mt-4`, children: [
|
|
67
|
-
/* @__PURE__ */ s("div", { className: "skeleton h-10 w-20" }),
|
|
68
|
-
/* @__PURE__ */ s("div", { className: "skeleton h-10 w-20" })
|
|
69
82
|
] })
|
|
70
|
-
] })
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
/* @__PURE__ */ e("div", { className: "
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
83
|
+
] });
|
|
84
|
+
const p = r || a && i, x = () => !a && !l ? null : l ? /* @__PURE__ */ s("div", { className: "flex justify-between items-start gap-4", children: [
|
|
85
|
+
a && /* @__PURE__ */ e("h2", { className: "card-title", children: a }),
|
|
86
|
+
/* @__PURE__ */ e("div", { className: "flex-shrink-0", children: l })
|
|
87
|
+
] }) : a ? /* @__PURE__ */ e("h2", { className: "card-title", children: a }) : null;
|
|
88
|
+
return /* @__PURE__ */ s("div", { className: v, style: h, ...u, children: [
|
|
89
|
+
c && /* @__PURE__ */ e("figure", { children: c }),
|
|
90
|
+
/* @__PURE__ */ s("div", { className: "card-body", children: [
|
|
91
|
+
p ? /* @__PURE__ */ s(o, { children: [
|
|
92
|
+
/* @__PURE__ */ s("div", { className: "flex gap-4", children: [
|
|
93
|
+
r && /* @__PURE__ */ e("div", { className: "flex-shrink-0", children: r }),
|
|
94
|
+
/* @__PURE__ */ s("div", { className: "flex-1 min-w-0", children: [
|
|
95
|
+
x(),
|
|
96
|
+
i && /* @__PURE__ */ e("p", { className: "text-sm opacity-70 mt-1", children: i })
|
|
80
97
|
] })
|
|
81
98
|
] }),
|
|
82
|
-
|
|
83
|
-
] }) : /* @__PURE__ */
|
|
84
|
-
|
|
85
|
-
|
|
99
|
+
d
|
|
100
|
+
] }) : /* @__PURE__ */ s(o, { children: [
|
|
101
|
+
x(),
|
|
102
|
+
d
|
|
86
103
|
] }),
|
|
87
|
-
|
|
104
|
+
n && /* @__PURE__ */ e("div", { className: `card-actions ${w[N]}`, children: n })
|
|
88
105
|
] })
|
|
89
106
|
] });
|
|
90
107
|
}
|
|
91
|
-
const
|
|
92
|
-
Grid:
|
|
108
|
+
const G = Object.assign(M, {
|
|
109
|
+
Grid: y,
|
|
110
|
+
Meta: C
|
|
93
111
|
});
|
|
94
112
|
export {
|
|
95
|
-
|
|
96
|
-
|
|
113
|
+
G as Card,
|
|
114
|
+
G as default
|
|
97
115
|
};
|
|
98
116
|
//# sourceMappingURL=index13.js.map
|
package/dist/index13.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index13.js","sources":["../src/components/Card.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface CardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n children
|
|
1
|
+
{"version":3,"file":"index13.js","sources":["../src/components/Card.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface CardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n children?: React.ReactNode\n title?: React.ReactNode\n /** Content in the top-right corner of the card header */\n extra?: React.ReactNode\n cover?: React.ReactNode\n actions?: React.ReactNode\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n bordered?: boolean\n side?: boolean\n imageFull?: boolean\n actionsJustify?: 'start' | 'center' | 'end'\n loading?: boolean\n hoverable?: boolean\n // Meta props for avatar + description layout\n avatar?: React.ReactNode\n description?: React.ReactNode\n}\n\nexport interface CardMetaProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Avatar or icon element */\n avatar?: React.ReactNode\n /** Title content */\n title?: React.ReactNode\n /** Description content */\n description?: React.ReactNode\n}\n\nexport interface CardGridProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode\n hoverable?: boolean\n}\n\nfunction CardGrid({ children, hoverable = false, className = '', style, ...rest }: CardGridProps) {\n const classes = [\n 'p-6 border border-base-content/10',\n hoverable && 'cursor-pointer hover:shadow-md transition-shadow',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div className={classes} style={style} {...rest}>\n {children}\n </div>\n )\n}\n\nfunction CardMeta({ avatar, title, description, className = '', ...rest }: CardMetaProps) {\n return (\n <div className={`flex gap-4 ${className}`} {...rest}>\n {avatar && <div className=\"flex-shrink-0\">{avatar}</div>}\n <div className=\"flex-1 min-w-0\">\n {title && <div className=\"font-medium\">{title}</div>}\n {description && <div className=\"text-sm opacity-70 mt-1\">{description}</div>}\n </div>\n </div>\n )\n}\n\nfunction CardRoot({\n children,\n title,\n extra,\n cover,\n actions,\n className = '',\n style,\n size,\n bordered = true,\n side = false,\n imageFull = false,\n actionsJustify = 'end',\n loading = false,\n hoverable = false,\n avatar,\n description,\n ...rest\n}: CardProps) {\n const sizeClasses: Record<string, string> = {\n xs: 'card-xs',\n sm: 'card-sm',\n md: 'card-md',\n lg: 'card-lg',\n xl: 'card-xl',\n }\n\n const classes = [\n 'card',\n 'bg-base-100',\n size && sizeClasses[size],\n // Don't add border when imageFull is used (it breaks the overlay effect)\n bordered && !imageFull && 'border border-base-content/10 shadow-sm',\n side && 'card-side',\n imageFull && 'image-full shadow-sm',\n hoverable && 'transition-shadow hover:shadow-lg cursor-pointer',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n const justifyClasses: Record<string, string> = {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n }\n\n if (loading) {\n return (\n <div className={classes} style={style} {...rest}>\n {cover && (\n <figure>\n <div className=\"skeleton h-48 w-full rounded-none\" />\n </figure>\n )}\n <div className=\"card-body\">\n {(avatar || title) && (\n <div className=\"flex gap-4 mb-4\">\n {avatar && <div className=\"skeleton w-12 h-12 rounded-full flex-shrink-0\" />}\n <div className=\"flex-1 space-y-2\">\n <div className=\"skeleton h-6 w-2/3\" />\n {description && <div className=\"skeleton h-4 w-full\" />}\n </div>\n </div>\n )}\n {!avatar && !title && (\n <>\n <div className=\"skeleton h-6 w-2/3 mb-4\" />\n <div className=\"space-y-2\">\n <div className=\"skeleton h-4 w-full\" />\n <div className=\"skeleton h-4 w-5/6\" />\n <div className=\"skeleton h-4 w-4/6\" />\n </div>\n </>\n )}\n {actions && (\n <div className={`card-actions ${justifyClasses[actionsJustify]} mt-4`}>\n <div className=\"skeleton h-10 w-20\" />\n <div className=\"skeleton h-10 w-20\" />\n </div>\n )}\n </div>\n </div>\n )\n }\n\n // Render with avatar + title + description layout (meta style)\n const hasMetaLayout = avatar || (title && description)\n\n // Header with title and extra\n const renderHeader = () => {\n if (!title && !extra) return null\n\n if (extra) {\n return (\n <div className=\"flex justify-between items-start gap-4\">\n {title && <h2 className=\"card-title\">{title}</h2>}\n <div className=\"flex-shrink-0\">{extra}</div>\n </div>\n )\n }\n\n return title ? <h2 className=\"card-title\">{title}</h2> : null\n }\n\n return (\n <div className={classes} style={style} {...rest}>\n {cover && <figure>{cover}</figure>}\n <div className=\"card-body\">\n {hasMetaLayout ? (\n <>\n <div className=\"flex gap-4\">\n {avatar && <div className=\"flex-shrink-0\">{avatar}</div>}\n <div className=\"flex-1 min-w-0\">\n {renderHeader()}\n {description && <p className=\"text-sm opacity-70 mt-1\">{description}</p>}\n </div>\n </div>\n {children}\n </>\n ) : (\n <>\n {renderHeader()}\n {children}\n </>\n )}\n {actions && <div className={`card-actions ${justifyClasses[actionsJustify]}`}>{actions}</div>}\n </div>\n </div>\n )\n}\n\nexport const Card = Object.assign(CardRoot, {\n Grid: CardGrid,\n Meta: CardMeta,\n})\n\nexport default Card\n"],"names":["CardGrid","children","hoverable","className","style","rest","classes","CardMeta","avatar","title","description","jsx","jsxs","CardRoot","extra","cover","actions","size","bordered","side","imageFull","actionsJustify","loading","justifyClasses","Fragment","hasMetaLayout","renderHeader","Card"],"mappings":";AAmCA,SAASA,EAAS,EAAE,UAAAC,GAAU,WAAAC,IAAY,IAAO,WAAAC,IAAY,IAAI,OAAAC,GAAO,GAAGC,KAAuB;AAChG,QAAMC,IAAU;AAAA,IACd;AAAA,IACAJ,KAAa;AAAA,IACbC;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,2BACG,OAAA,EAAI,WAAWG,GAAS,OAAAF,GAAe,GAAGC,GACxC,UAAAJ,GACH;AAEJ;AAEA,SAASM,EAAS,EAAE,QAAAC,GAAQ,OAAAC,GAAO,aAAAC,GAAa,WAAAP,IAAY,IAAI,GAAGE,KAAuB;AACxF,2BACG,OAAA,EAAI,WAAW,cAAcF,CAAS,IAAK,GAAGE,GAC5C,UAAA;AAAA,IAAAG,KAAU,gBAAAG,EAAC,OAAA,EAAI,WAAU,iBAAiB,UAAAH,GAAO;AAAA,IAClD,gBAAAI,EAAC,OAAA,EAAI,WAAU,kBACZ,UAAA;AAAA,MAAAH,KAAS,gBAAAE,EAAC,OAAA,EAAI,WAAU,eAAe,UAAAF,GAAM;AAAA,MAC7CC,KAAe,gBAAAC,EAAC,OAAA,EAAI,WAAU,2BAA2B,UAAAD,EAAA,CAAY;AAAA,IAAA,EAAA,CACxE;AAAA,EAAA,GACF;AAEJ;AAEA,SAASG,EAAS;AAAA,EAChB,UAAAZ;AAAA,EACA,OAAAQ;AAAA,EACA,OAAAK;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAb,IAAY;AAAA,EACZ,OAAAC;AAAA,EACA,MAAAa;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,MAAAC,IAAO;AAAA,EACP,WAAAC,IAAY;AAAA,EACZ,gBAAAC,IAAiB;AAAA,EACjB,SAAAC,IAAU;AAAA,EACV,WAAApB,IAAY;AAAA,EACZ,QAAAM;AAAA,EACA,aAAAE;AAAA,EACA,GAAGL;AACL,GAAc;AASZ,QAAMC,IAAU;AAAA,IACd;AAAA,IACA;AAAA,IACAW,KAX0C;AAAA,MAC1C,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,EAMgBA,CAAI;AAAA;AAAA,IAExBC,KAAY,CAACE,KAAa;AAAA,IAC1BD,KAAQ;AAAA,IACRC,KAAa;AAAA,IACblB,KAAa;AAAA,IACbC;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,GAELoB,IAAyC;AAAA,IAC7C,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,EAAA;AAGP,MAAID;AACF,6BACG,OAAA,EAAI,WAAWhB,GAAS,OAAAF,GAAe,GAAGC,GACxC,UAAA;AAAA,MAAAU,uBACE,UAAA,EACC,UAAA,gBAAAJ,EAAC,OAAA,EAAI,WAAU,qCAAoC,GACrD;AAAA,MAEF,gBAAAC,EAAC,OAAA,EAAI,WAAU,aACX,UAAA;AAAA,SAAAJ,KAAUC,MACV,gBAAAG,EAAC,OAAA,EAAI,WAAU,mBACZ,UAAA;AAAA,UAAAJ,KAAU,gBAAAG,EAAC,OAAA,EAAI,WAAU,gDAAA,CAAgD;AAAA,UAC1E,gBAAAC,EAAC,OAAA,EAAI,WAAU,oBACb,UAAA;AAAA,YAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,qBAAA,CAAqB;AAAA,YACnCD,KAAe,gBAAAC,EAAC,OAAA,EAAI,WAAU,sBAAA,CAAsB;AAAA,UAAA,EAAA,CACvD;AAAA,QAAA,GACF;AAAA,QAED,CAACH,KAAU,CAACC,KACX,gBAAAG,EAAAY,GAAA,EACE,UAAA;AAAA,UAAA,gBAAAb,EAAC,OAAA,EAAI,WAAU,0BAAA,CAA0B;AAAA,UACzC,gBAAAC,EAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,YAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,sBAAA,CAAsB;AAAA,YACrC,gBAAAA,EAAC,OAAA,EAAI,WAAU,qBAAA,CAAqB;AAAA,YACpC,gBAAAA,EAAC,OAAA,EAAI,WAAU,qBAAA,CAAqB;AAAA,UAAA,EAAA,CACtC;AAAA,QAAA,GACF;AAAA,QAEDK,uBACE,OAAA,EAAI,WAAW,gBAAgBO,EAAeF,CAAc,CAAC,SAC5D,UAAA;AAAA,UAAA,gBAAAV,EAAC,OAAA,EAAI,WAAU,qBAAA,CAAqB;AAAA,UACpC,gBAAAA,EAAC,OAAA,EAAI,WAAU,qBAAA,CAAqB;AAAA,QAAA,EAAA,CACtC;AAAA,MAAA,EAAA,CAEJ;AAAA,IAAA,GACF;AAKJ,QAAMc,IAAgBjB,KAAWC,KAASC,GAGpCgB,IAAe,MACf,CAACjB,KAAS,CAACK,IAAc,OAEzBA,IAEA,gBAAAF,EAAC,OAAA,EAAI,WAAU,0CACZ,UAAA;AAAA,IAAAH,KAAS,gBAAAE,EAAC,MAAA,EAAG,WAAU,cAAc,UAAAF,GAAM;AAAA,IAC5C,gBAAAE,EAAC,OAAA,EAAI,WAAU,iBAAiB,UAAAG,EAAA,CAAM;AAAA,EAAA,GACxC,IAIGL,IAAQ,gBAAAE,EAAC,MAAA,EAAG,WAAU,cAAc,aAAM,IAAQ;AAG3D,2BACG,OAAA,EAAI,WAAWL,GAAS,OAAAF,GAAe,GAAGC,GACxC,UAAA;AAAA,IAAAU,KAAS,gBAAAJ,EAAC,YAAQ,UAAAI,EAAA,CAAM;AAAA,IACzB,gBAAAH,EAAC,OAAA,EAAI,WAAU,aACZ,UAAA;AAAA,MAAAa,IACC,gBAAAb,EAAAY,GAAA,EACE,UAAA;AAAA,QAAA,gBAAAZ,EAAC,OAAA,EAAI,WAAU,cACZ,UAAA;AAAA,UAAAJ,KAAU,gBAAAG,EAAC,OAAA,EAAI,WAAU,iBAAiB,UAAAH,GAAO;AAAA,UAClD,gBAAAI,EAAC,OAAA,EAAI,WAAU,kBACZ,UAAA;AAAA,YAAAc,EAAA;AAAA,YACAhB,KAAe,gBAAAC,EAAC,KAAA,EAAE,WAAU,2BAA2B,UAAAD,EAAA,CAAY;AAAA,UAAA,EAAA,CACtE;AAAA,QAAA,GACF;AAAA,QACCT;AAAA,MAAA,EAAA,CACH,IAEA,gBAAAW,EAAAY,GAAA,EACG,UAAA;AAAA,QAAAE,EAAA;AAAA,QACAzB;AAAA,MAAA,GACH;AAAA,MAEDe,uBAAY,OAAA,EAAI,WAAW,gBAAgBO,EAAeF,CAAc,CAAC,IAAK,UAAAL,EAAA,CAAQ;AAAA,IAAA,EAAA,CACzF;AAAA,EAAA,GACF;AAEJ;AAEO,MAAMW,IAAO,OAAO,OAAOd,GAAU;AAAA,EAC1C,MAAMb;AAAA,EACN,MAAMO;AACR,CAAC;"}
|